"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Omar Polo <op@omarpolo.com>
Subject:
Re: got: rm * removes current directory
To:
Mark Jamsek <mark@jamsek.com>
Cc:
Mikhail <mp39590@gmail.com>, gameoftrees@openbsd.org
Date:
Mon, 29 May 2023 11:46:53 +0200

Download raw body.

Thread
On 2023/05/29 19:26:47 +1000, Mark Jamsek <mark@jamsek.com> 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.