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

Re: [PATCH 3/5] checkout --to: no auto-detach if the ref is already checked out

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 24, 2014, 16:39 UTC
Message-ID
<xmqqr41aaey0.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CACsJy8CTYyjqmwGgkKZQFX4YC9-X=TGx9Ex5QfNWRNKFjgpKag@mail.gmail.com>
Duy Nguyen <pclouds@gmail.com> writes:
Show 18 quoted lines
> On Thu, Jul 24, 2014 at 4:16 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>> +     if (strbuf_read_file(&sb, path.buf, 0) <= 0 ||
>>> +         !skip_prefix(sb.buf, "ref:", &start))
>>> +             goto done;
>>>       while (isspace(*start))
>>>               start++;
>>>       end = start;
>>>       while (*end && !isspace(*end))
>>>               end++;
>>
>> Not new in this round of update, and may not even be an issue, but:
>>
>>  - Earlier, the code returned early on a negative return value from
>>    read-file (i.e., an error), but this round it also does so for
>>    zero.  Intended?
>
> Yes. But it does not make any difference. strbuf_read_file returns
> sb.len, if it's empty, the next skip_prefix would fail anyway.

Yes but changing < 0 to <= 0 is inconsistent with that; I would understand if you changed it to <= 4, which would be consistent with the reasoning, though.

Show 6 quoted lines
>> The code in the patch, which is something in between, does not make
>> much sense to me.
>
> I think more about "echo abc > $this_file" where the echo command may
> output '\r\n' on Windows (wild guess though, I don't use Windows
> much). I think I'm going with _rtrim.

To expect 'echo' into the file is to expect and encourage that people muck with the internal implementation details by hand, which we do not generally do for things inside .git [*1*].

If we consider the contents of $this_file not an implementation detail but a part of the published API (i.e. "writing this string into the file is a valid way to make Git do this"), rtrim would at least be consistent with how the existing code deals with symrefs, so I wouldn't say "does not make much sense" if you are going in that direction ;-)

[Footnote]

*1* ... except for .git/config, to which we say "It's a simple text file; don't be afraied to edit it away!".

Previous: Duy NguyenNext: Junio C Hamano
Message 18 of 36 in “nd/multiple-work-trees follow-ups”
  1. 0/5 nd/multiple-work-trees follow-upsNguyễn Thái Ngọc Duy, Jul 23, 2014
  2. 1/5 gitrepository-layout.txt: s/ignored/ignored if/Nguyễn Thái Ngọc Duy, Jul 23, 2014
  3. 2/5 prune --repos: fix uninitialized accessNguyễn Thái Ngọc Duy, Jul 23, 2014
  4. Junio C HamanoJul 23, 2014
  5. Duy NguyenJul 24, 2014
  6. 3/5 checkout --to: no auto-detach if the ref is already checked outNguyễn Thái Ngọc Duy, Jul 23, 2014
  7. Michael J GruberJul 23, 2014
  8. Junio C HamanoJul 23, 2014
  9. Duy NguyenJul 24, 2014
  10. Junio C HamanoJul 24, 2014
  11. Michael J GruberJul 25, 2014
  12. Junio C HamanoJul 30, 2014
  13. Junio C HamanoJul 30, 2014
  14. Duy NguyenAug 27, 2014
  15. Junio C HamanoAug 27, 2014
  16. Junio C HamanoJul 23, 2014
  17. Duy NguyenJul 24, 2014
  18. Junio C HamanoJul 24, 2014
  19. Junio C HamanoJul 24, 2014
  20. 4/5 checkout --to: fix dangling pointers in remove_junk()Nguyễn Thái Ngọc Duy, Jul 23, 2014
  21. 5/5 environment.c: fix incorrect git_graft_file initializationNguyễn Thái Ngọc Duy, Jul 23, 2014
  22. Junio C HamanoJul 23, 2014
  23. 0/8 nd/multiple-work-trees follow-upsNguyễn Thái Ngọc Duy, Jul 29, 2014
  24. 1/8 gitrepository-layout.txt: s/ignored/ignored if/Nguyễn Thái Ngọc Duy, Jul 29, 2014
  25. 2/8 checkout: no need to call check_linked_checkouts if head_ref is NULLNguyễn Thái Ngọc Duy, Jul 29, 2014
  26. 3/8 prune --repos: fix uninitialized accessNguyễn Thái Ngọc Duy, Jul 29, 2014
  27. 4/8 checkout: no auto-detach if the ref is already checked outNguyễn Thái Ngọc Duy, Jul 29, 2014
  28. 5/8 checkout --to: fix dangling pointers in remove_junk()Nguyễn Thái Ngọc Duy, Jul 29, 2014
  29. 6/8 environment.c: fix incorrect git_graft_file initializationNguyễn Thái Ngọc Duy, Jul 29, 2014
  30. 7/8 checkout: prefix --to argument properly when cwd is movedNguyễn Thái Ngọc Duy, Jul 29, 2014
  31. Junio C HamanoJul 29, 2014
  32. Duy NguyenJul 30, 2014
  33. 8/8 checkout --to: do not touch existing target directoryNguyễn Thái Ngọc Duy, Jul 29, 2014
  34. Junio C HamanoJul 30, 2014
  35. Duy NguyenJul 31, 2014
  36. Junio C HamanoJul 31, 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.