Junio C Hamano <gits...@pobox.com> writes:

> Andrew Ardill <andrew.ard...@gmail.com> writes:
>>> If that is the change we are going to make, and if you can guarantee
>>> that nobody who is used to the historical behaviour will complain,
>>> then I am fine with it, but I think the latter part of the condition
>>> will not hold.
>> Does the impossibility of asserting that no-one will complain put this
>> in the 'too hard' bucket?
> Basically, yes.  "Cannot be done without UI regression."
> It could be a Git 2.0 item, if you plan the transition right, though.

I have been staring at the patch again, but I do not think of an
easy way out without retraining the old timers to introduce this "if
we knew better, we would have done so from day one and the world
would have been a much better place" change.  If we were to have
this in the longer term, we would need a proper transition plan,
similar to the one we devised to change the default used for a lazy
"git push" (and "git push $there") from the traditional "matching"
to "simple" at Git 2.0 boundary.

The transition would go like this:

 * Introduce "git add --ignore-removal" option in the release after
   the current cycle (a new feature is too late for this cycle):

   - when "git add <pathspec>" is given without "--ignore-removal",
     give a warning about upcoming default change, and advise people
     to use either "--ignore-removal" or "--all" option, but behave
     as if "--ignore-removal" were given.

   - when "git add --ignore-removal <pathspec>" is given, only add
     additions and modifications, just like the current behaviour.

   - obviously, "-u", "-A", and "--ignore-removal" are mutually

 * Run with the above for a few releases.

 * Change the behaviour of "git add <pathspec>" without "-u", "-A"
   nor "--ignore-removal" to error out with the same warning and

 * Run with the above for a few releases.

 * At Git 2.0, change "git add <pathspec>" without "-u", "-A" nor
   "--ignore-removal" to behave as if "git add -A <pathspec>" were

At any point during the above transtion, "git add" without any
pathspec will not change its meaning; it will stay a no-op.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to