Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for sparse checkouts #1369

Merged
merged 4 commits into from Jun 9, 2023
Merged

Commits on Jun 3, 2023

  1. Add support for sparse checkouts

    dfdez authored and dscho committed Jun 3, 2023
    Configuration menu
    Copy the full SHA
    9f59c81 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. 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>
    dscho committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    a241939 View commit details
    Browse the repository at this point in the history
  2. 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>
    dscho committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    1b203d1 View commit details
    Browse the repository at this point in the history
  3. 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>
    dscho committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    25d6c12 View commit details
    Browse the repository at this point in the history