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

Re: Is git-checkout's restoring d/f conflict really sane?

From
Junio C Hamano <gitster@pobox.com>
Date
May 14, 2019, 10:37 UTC
Message-ID
<xmqq8sv99vac.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CACsJy8Bew3i6AL_XWfhLhCvdSFYVCGoEQepi9KLmSDPVmDu5Zg@mail.gmail.com>
Duy Nguyen <pclouds@gmail.com> writes:
Show 16 quoted lines
> $ echo data > one
> $ git add one
> $ rm one
> $ mkdir one
> $ echo two > one/two
> $ echo three > one/three
> $ git checkout one
> $ ls -l one
> -rw-r--r-- 1 pclouds pclouds 5 May 14 16:36 one
>
> Replacing a file is one thing. In this case we're deleting a directory
> and unknown number of files inside (in this case 'two' and 'three').
> Is this really a good thing to do?
>
> If it's not but too late to do anything about git-checkout, could
> git-restore do something better (and exactly what)?

The user said "I do not want whatever I have under name 'one' in the working tree, and I want what I have as 'one' in the index instead", so I tend to think that failing the request would be a disservice.

I suspect that this will become even more right thing to do, in the new world where the no-overlay mode becomes the default. Unlike "checkout HEAD ." that only adds to the set of paths in the working tree, "restore HEAD ." will remove what's in the working tree and in the index but not in the HEAD, no?

Previous: Duy NguyenNext: Duy Nguyen
Message 2 of 4 in “Is git-checkout's restoring d/f conflict really sane?”
  1. Duy NguyenMay 14, 2019
  2. Junio C HamanoMay 14, 2019
  3. Duy NguyenMay 14, 2019
  4. Junio C HamanoMay 15, 2019

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.