1
mirror of https://github.com/actions/checkout.git synced 2026-06-13 02:37:14 +00:00
Commit Graph

6 Commits

  • Support fetching without the --progress option (#1067)
    Setting the `show-progress` option to false in the `with` section of the
    workflow step will cause git fetch to run without `--progress`.
    
    The motivation is to be able to suppress the noisy progress status
    output which adds many hundreds of "remote: Counting objects: 85%
    (386/453)" and similar lines in the workflow log.
    
    This should be sufficient to resolve #894 and its older friends,
    though the solution is different to the one proposed there because
    it doesn't use the --quiet flag. IIUC git doesn't show the progress
    status by default since the output is not a terminal, so that's why
    removing the --progress option is all that's needed.
    
    Adding the --quiet flag doesn't make a lot of difference once the
    --progress flag is removed, and actually I think using --quiet would
    suppress some other more useful output that would be better left
    visible.
    
    Signed-off-by: Simon Baird <sbaird@redhat.com>
  • Add option to fetch tags even if fetch-depth > 0 (#579)
    * Add option to fetch tags even if fetch-depth > 0
    
    * Add jest tests for fetchDepth and fetchTags options
  • Add support for sparse checkouts (#1369)
    * Add support for sparse checkouts
    
    * sparse-checkout: optionally turn off cone mode
    
    While it _is_ true that cone mode is the default nowadays (mainly for
    performance reasons: code mode is much faster than non-cone mode), there
    _are_ legitimate use cases where non-cone mode is really useful.
    
    Let's add a flag to optionally disable cone mode.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    * Verify minimum Git version for sparse checkout
    
    The `git sparse-checkout` command is available only since Git version
    v2.25.0. The `actions/checkout` Action actually supports older Git
    versions than that; As of time of writing, the minimum version is
    v2.18.0.
    
    Instead of raising this minimum version even for users who do not
    require a sparse checkout, only check for this minimum version
    specifically when a sparse checkout was asked for.
    
    Suggested-by: Tingluo Huang <tingluohuang@github.com>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    * Support sparse checkout/LFS better
    
    Instead of fetching all the LFS objects present in the current revision
    in a sparse checkout, whether they are needed inside the sparse cone or
    not, let's instead only pull the ones that are actually needed.
    
    To do that, let's avoid running that preemptive `git lfs fetch` call in
    case of a sparse checkout.
    
    An alternative that was considered during the development of this patch
    (and ultimately rejected) was to use `git lfs pull --include <path>...`,
    but it turned out to be too inflexible because it requires exact paths,
    not the patterns that are available via the sparse checkout definition,
    and that risks running into command-line length limitations.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    ---------
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Co-authored-by: Daniel <daniel.fernandez@feverup.com>
  • Implement branch list using callbacks from exec function (#1045)
    When trying to list local branches to figure out what needs cleaned up during runs on non-ephemeral Actions Runners, we use git rev-parse --symbolic-full-name to get a list of branches. This can lead to ambiguous ref name errors when there are branches and tags with similar names.
    
    Part of the reason we use rev-parse --symbolic-full-name vs git branch --list or git rev-parse --symbolic seems to related to a bug in Git 2.18. Until we can deprecate our usage of Git 2.18, I think we need to keep --symbolic-full-name. Since part of the problem is that these ambiguous ref name errors clog the Actions annotation limits, this is a mitigation to suppress those messages until we can get rid of the workaround.