Re: --skip-worktree and operations like checkout / stash /etc.
- From
Raman Gupta <rocketraman@gmail.com>
- Date
- Sep 28, 2018, 13:35 UTC
- Message-ID
- <CADF5XCxfmuqXau4YGrGgfU6JgxbHthZn5o5_t6J=x9JEaS_K4Q@mail.gmail.com>
- In-Reply-To
- <CADF5XCygzArjd9rgY_x_BqnhL5QpFL1CO1JjOHnBQc3HFn_JdQ@mail.gmail.com>
In the meantime I've created this simple script, but what a hack...
#!/bin/bash
git ls-files -v | grep "^S " | cut -c3- | readarray ignored
for x in "${ignored[@]}"; do
git update-index --no-skip-worktree -- "$x"
done
git checkout -m $@
for x in "${ignored[@]}"; do
git update-index --skip-worktree -- "$x"
doneRegards, Raman On Thu, Sep 27, 2018 at 6:29 PM Raman Gupta <rocketraman@gmail.com> wrote:
Show 40 quoted lines
> > The comand `update-index --skip-worktree` seems to be an ideal way to > tell git to locally ignore some modified files. However, this seems > not to play well with very common commands like `checkout` and > `stash`. > > $ git checkout other-branch > error: Your local changes to the following files would be overwritten > by checkout: > path/to/ignored/file > Please commit your changes or stash them before you switch branches. > Aborting > > Ok, well lets try stashing: > > $ git stash save > No local changes to save > > Ok, lets try a checkout with a merge: > > $ git checkout -m other-branch > error: Entry 'path/to/ignored/file' not uptodate. Cannot merge. > > Ok, lets force this sucker: > > $ git checkout -f other-branch > error: Entry 'path/to/ignored/file' not uptodate. Cannot merge. > > Ok, at this point I'm wondering, do I really need to > --no-skip-worktree all the ignored files, do my `checkout -m`, and > then ignore them again? Umm, no, that ain't gonna work. > > I'd love for git to just check if my worktree-skipped changes will > merge cleanly into the target branch, and if they do so, go ahead and > do that merge (with perhaps a notification printed to the console) and > keep the skip worktree status. If the merge ends up with a conflict, > then feel free to no-worktree-skip it and show me merge conflicts. > > Regards, > Raman