git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's cooking in git.git (Feb 2013, #05; Tue, 12)

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 14, 2013, 23:17 UTC
Message-ID
<7vvc9uwkmm.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vd2w23k7k.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Andrew Ardill <andrew.ardill@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
     exclusive.
 * 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
   advise.
 * 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
   given.

At any point during the above transtion, "git add" without any pathspec will not change its meaning; it will stay a no-op.

Previous: Junio C HamanoNext: Miles Bader
Message 12 of 15 in “What's cooking in git.git (Feb 2013, #05; Tue, 12)”
  1. Junio C HamanoFeb 13, 2013
  2. jn/shell-disable-interactive (Re: What's cooking in git.git (Feb 2013, #05; Tue, 12))Jonathan Nieder, Feb 13, 2013
  3. Junio C HamanoFeb 13, 2013
  4. Andrew ArdillFeb 13, 2013
  5. Junio C HamanoFeb 13, 2013
  6. Andrew ArdillFeb 13, 2013
  7. Junio C HamanoFeb 13, 2013
  8. Andrew ArdillFeb 14, 2013
  9. Junio C HamanoFeb 14, 2013
  10. Andrew ArdillFeb 14, 2013
  11. Junio C HamanoFeb 14, 2013
  12. Junio C HamanoFeb 14, 2013
  13. Miles BaderFeb 22, 2013
  14. Junio C HamanoFeb 22, 2013
  15. greened@obbligato.orgFeb 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.