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

Re: [RFC] git checkout $tree -- $path always rewrites files

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 14, 2014, 19:27 UTC
Message-ID
<xmqqwq6x37ne.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20141114054440.GA54304@gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 13 quoted lines
> On Sun, Nov 09, 2014 at 09:21:49AM -0800, Junio C Hamano wrote:
>> 
>> It might be less risky if the updated semantics were to make the
>> paths that are originally in the index but not in $tree untracked
>> (as opposed to "reset --hard" emulation where they will be lost)
>> unless they need to be removed to make room for D/F conflict issues,
>> but I haven't thought it through.
>
> Git has always been really careful to not lose data.
>
> One way to avoid the problem of changing existing semantics is
> to make the new semantics accessible behind a flag, e.g.
> "git checkout --hard HEAD -- some-new-path".

Yup, but you seem to be behind by a few exchanges, as we tentatively decided that we won't talk about changing the semantics and concentrate on fixing the implementation glitches only at least for now ;-)

I find that "--hard" is not a very good name for the new mode. There will be different kinds of "more than what we usually do" modes of operations discovered over time in the coming years, and it is better to be more specific to denote "in what way we are doing it harder" (I think the difference the proposed new mode has is to also checkout absense of the paths).

But in this particular case, making the paths that are absent in $tree we are checking out of into untracked paths (instead of removing) is a right balance of safety---it is similar to "git reset HEAD" (no "--hard") after adding a new path which leaves the file in the working tree.

Previous: David Aguilar
Message 23 of 23 in “[RFC] git checkout $tree -- $path always rewrites files”
  1. Jeff KingNov 7, 2014
  2. Jeff KingNov 7, 2014
  3. Duy NguyenNov 7, 2014
  4. Junio C HamanoNov 7, 2014
  5. Jeff KingNov 7, 2014
  6. Junio C HamanoNov 7, 2014
  7. Jeff KingNov 7, 2014
  8. Martin von ZweigbergkNov 8, 2014
  9. Martin von ZweigbergkNov 8, 2014
  10. Jeff KingNov 8, 2014
  11. Jeff KingNov 8, 2014
  12. Junio C HamanoNov 9, 2014
  13. Martin von ZweigbergkNov 8, 2014
  14. Jeff KingNov 9, 2014
  15. Junio C HamanoNov 9, 2014
  16. Jeff KingNov 13, 2014
  17. Junio C HamanoNov 13, 2014
  18. Jeff KingNov 13, 2014
  19. Jeff KingNov 13, 2014
  20. Junio C HamanoNov 13, 2014
  21. Jeff KingNov 13, 2014
  22. David AguilarNov 14, 2014
  23. Junio C HamanoNov 14, 2014

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.