Re: [PATCH 5/6] Comment important codepaths regarding nuking untracked files/dirs
On Fri, Sep 24, 2021 at 4:47 AM Luke Diamand <luke@diamand.org> wrote:
Show 37 quoted lines
>
> On Sun, 19 Sept 2021 at 00:15, Elijah Newren via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
> >
> > From: Elijah Newren <newren@gmail.com>
> >
> > In the last few commits we focused on code in unpack-trees.c that
> > mistakenly removed untracked files or directories. There may be more of
> > those, but in this commit we change our focus: callers of toplevel
> > commands that are expected to remove untracked files or directories.
> >
> > As noted previously, we have toplevel commands that are expected to
> > delete untracked files such as 'read-tree --reset', 'reset --hard', and
> > 'checkout --force'. However, that does not mean that other highlevel
> > commands that happen to call these other commands thought about or
> > conveyed to users the possibility that untracked files could be removed.
> > Audit the code for such callsites, and add comments near existing
> > callsites to mention whether these are safe or not.
> >
> > My auditing is somewhat incomplete, though; it skipped several cases:
> > * git-rebase--preserve-merges.sh: is in the process of being
> > deprecated/removed, so I won't leave a note that there are
> > likely more bugs in that script.
> > * contrib/git-new-workdir: why is the -f flag being used in a new
> > empty directory?? It shouldn't hurt, but it seems useless.
> > * git-p4.py: Don't see why -f is needed for a new dir (maybe it's
> > not and is just superfluous), but I'm not at all familiar with
> > the p4 stuff
>
> Assuming you're talking about this code in git-p4.py:
>
> print("Synchronizing p4 checkout...")
> if new_client_dir:
> # old one was destroyed, and maybe nobody told p4
> p4_sync("...", "-f")
> else:
> p4_sync("...")No, I was talking about this code:
system([ "git", "checkout", "-f" ])