git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Guillem Jover <guillem@hadrons.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: Add a way to disable «git clean» per repo
Date: Sun, 9 Apr 2023 19:01:07 +0200	[thread overview]
Message-ID: <ZDLvUxp0d33VgFQY@thunder.hadrons.org> (raw)
In-Reply-To: <xmqq355g6f6u.fsf@gitster.g>

Hi!

On Mon, 2023-04-03 at 10:36:25 -0700, Junio C Hamano wrote:
> Guillem Jover <guillem@hadrons.org> writes:
> > Accidentally running «git clean -xdf» or «git clean -Xdf» might be
> > catastrophic there.
> 
> So would accidentally running "rm -fr" there be catastrophic, too.

Sure.

> I doubt it would make much sense to file a feature request to Debian
> or GNU/FSF to disable "rm -r" in certain directories.  I am not sure
> why "git clean" should be any different.

Right, but I see a substantial difference though, «git clean» is
part of the git toolset to manage among other things specific work
trees, where that behavior is controlled through configuration, and
is as such confined within those specific realms, where also the
properties of what is being tracked might be different.
(With GNU coreutils rm you can confine it within one filesystem with
--one-file-system, but TBH I've never had the need to use it AFAIR,
and it's not enabled by default.)

> Commands like "git clean" require "-f" before they become overly
> destructuve for a reason.  clean.requireForce defaults to true for
> the same reason.

Right, I guess that's another reason for me why I see these («rm» vs
«git clean») as not being entirely comparable. Using «rm» requires in
most cases no force options, even when removing recursively (with -r),
while «git clean» by default will fail fatally (for all invocations
AFAICS?), so perhaps I'm holding it wrong, but when you end up invoking
a command very often (f.ex. to make sure your project is building from
a clean state), which requires using a force option (because passing -i
would become very cumbersome very quick), that becomes a habit or part
of your muscle-memory (perhaps a bad one), that means I tend to not pay
as much attention as I'd do when running «rm -rf» (also because of the
confinement I mentioned above).

For now it occurred to me that I could create dummy git repos in
parent directories to act as «git clean» barriers, so that it does not
propagate further up in the directory tree, but that still seems like
a hack, and I'd really like to protect specific work trees where I know
I never want to be able to run «git clean».

Thanks,
Guillem

  reply	other threads:[~2023-04-09 17:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-01 20:50 Add a way to disable «git clean» per repo Guillem Jover
2023-04-03 17:36 ` Junio C Hamano
2023-04-09 17:01   ` Guillem Jover [this message]
2023-04-10 13:32     ` Thomas Guyot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZDLvUxp0d33VgFQY@thunder.hadrons.org \
    --to=guillem@hadrons.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).