Re: What's cooking in git.git (topics)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 1, 2007, at 14:33, Linus Torvalds wrote:
I certainly think this should go in, but it does make one deficiency
painfully clear: the remaining shell scripts end up having all the old
flags behaviour.

So while you can combine flags for *most* programs, you still won't
be able to say things like

	git clean -qdx

just because that's still a shellscript, and doing any fancy argument
parsing in shell is just painful.

Is somebody still working on doing the shell->C conversion?


This is by far the most dangerous command we have at this stage,
and just too easy to execute by accident. While I now have found
out that it is possible to set clean.requireForce to disarm the
command, that's the wrong way around. Only experienced users set
it, and the mere existence of the config item indicates people
do get hosed (and lose data) as a result of the poor semantics.

I often type "make clean" as well many "git xyz" commands
during development, and so it happens that at times, I type
"git clean" by accident.

So, I propose *not* converting git clean to a C builtin,
but instead adding --untracked and --ignored options to
git-rm.

This fixes two usability issues:
  1. data loss due to command typo
  2. too many git commands

Those who care about "git clean" can setup an alias
to make git clean equal to "git rm --untracked"

  -Geert

PS. No patch yet, but I wanted to prevent others from spending
    time on builtin git-clean.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux