Re: [PATCH v2 00/14] Sparse-checkout: modify 'git add', 'git rm', and 'git add' behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 12, 2021 at 6:23 AM Derrick Stolee via GitGitGadget
<gitgitgadget@xxxxxxxxx> wrote:
>
> This series is based on ds/mergies-with-sparse-index.
>
> As requested, this series looks to update the behavior of git add, git rm,
> and git mv when they attempt to modify paths outside of the sparse-checkout
> cone. In particular, this care is expanded to not just cache entries with
> the SKIP_WORKTREE bit, but also paths that do not match the sparse-checkout
> definition.
>
> This means that commands that worked before this series can now fail. In
> particular, if 'git merge' results in a conflict outside of the
> sparse-checkout cone, then 'git add ' will now fail.
>
> In order to allow users to circumvent these protections, a new '--sparse'
> option is added that ignores the sparse-checkout patterns and the
> SKIP_WORKTREE bit. The message for advice.updateSparsePath is adjusted to
> assist with discovery of this option.
>
> There is a subtle issue with git mv in that it does not check the index
> until it discovers a directory and then uses the index to find the contained
> entries. This means that in non-cone-mode patterns, a pattern such as
> "sub/dir" will not match the path "sub" and this can cause an issue.
>
> In order to allow for checking arbitrary paths against the sparse-checkout
> patterns, some changes to the underlying pattern matching code is required.
> It turns out that there are some bugs in the methods as advertised, but
> these bugs were never discovered because of the way methods like
> unpack_trees() will check a directory for a pattern match before checking
> its contained paths. Our new "check patterns on-demand" approach pokes holes
> in that approach, specifically with patterns that match entire directories.
>
>
> Updates in v2
> =============
>
>  * I got no complaints about these restrictions, so this is now a full
>    series, not RFC.
>
>  * Thanks to Matheus, several holes are filled with extra testing and
>    bugfixes.
>
>  * New patches add --chmod and --renormalize improvements. These are added
>    after the --sparse option to make them be one change each.

Sorry for taking so long, but I finally read through the series.  Only
had a few small comments here and there; the high level direction
looks good.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux