From: Omar Polo Subject: Re: got: rm * removes current directory To: Mark Jamsek Cc: Mikhail , gameoftrees@openbsd.org Date: Mon, 29 May 2023 11:46:53 +0200 On 2023/05/29 19:26:47 +1000, Mark Jamsek wrote: > tbh, I think stsp's proposed change is a notable improvement over the > current behaviour--which is surprising imo. Purely from a POLA > perspective, I think we should go ahead with it. The added consistency > with both the filesystem layer and other VCSs (Fossil also leaves the > directory), and I think it is a definite improvement. (That's not to say > we should do things just to be the same as others, but that, in this > case, they have the right idea.) And then when you consider the target > audience, as stsp noted, this will invariably pop up again. just to be clear, assuming a repository and a worktree with the following entries: README foo/bar.c foo/x.y what do you expect after doing "got rm foo/bar.c foo/x.y" ? With the proposed diff "foo" will be removed as it only affect what "cd foo && got rm bar.c x.y" does, leaving foo around as a special case to avoid removing the current working directory. This is the quirk I don't like, but it's personal preference. If everything, I'd prefer if we settle on "got rm foo/bar.c foo/x.y" leaving "foo" around (which is what I assume jamsek intended), it would be coherent with rm and don't have any special case. It could be tricky though, as with "got rm -R foo" I'd expect foo to be deleted as well. Since I made a big mess out of this thread (apologize again) I wouldn't mind trying to implement this behaviour, assuming we all agree.