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

Re: [PATCH v2 2/2] Make locked paths absolute when current directory is changed

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 21, 2014, 17:04 UTC
Message-ID
<xmqqr41ek5hl.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CACsJy8AXc4jvLPNpGyGdY9uzrnN-SbEeiksLDpS_=29gJ1KMnQ@mail.gmail.com>
Duy Nguyen <pclouds@gmail.com> writes:
Show 27 quoted lines
> On Mon, Jul 21, 2014 at 8:27 PM, Ramsay Jones
> <ramsay@ramsay1.demon.co.uk> wrote:
>>> +void make_locked_paths_absolute(void)
>>> +{
>>> +     struct lock_file *lk;
>>> +     for (lk = lock_file_list; lk != NULL; lk = lk->next) {
>>> +             if (lk->filename && !is_absolute_path(lk->filename)) {
>>> +                     char *to_free = lk->filename;
>>> +                     lk->filename = xstrdup(absolute_path(lk->filename));
>>> +                     free(to_free);
>>> +             }
>>> +     }
>>> +}
>>
>> I just have to ask, why are we putting relative pathnames in this
>> list to begin with? Why not use an absolute path when taking the
>> lock in all cases? (calling absolute_path() and using the result
>> to take the lock, storing it in the lock_file list, should not be
>> in the critical path, right? Not that I have measured it, of course! :)
>
> Conservative :) I'm still scared from 044bbbc (Make git_dir a path
> relative to work_tree in setup_work_tree() - 2008-06-19). But yeah
> looking through "grep hold_" I think none of the locks is in critical
> path. absolute_path() can die() if cwd is longer than PATH_MAX (and
> doing this reduces the chances of that happening). But René is adding
> strbuf_getcwd() that can remove that PATH_MAX. So I guess we should be
> fine with putting absolute_path() in hold_lock_file_...*

OK, we should center these efforts around the strbuf_getcwd() topic, basing the other topic on realpath() and this one on it then?

Previous: Ramsay JonesNext: Duy Nguyen
Message 10 of 27 in “Make locked paths absolute when current directory is changed”
  1. Make locked paths absolute when current directory is changedNguyễn Thái Ngọc Duy, Jul 18, 2014
  2. Junio C HamanoJul 18, 2014
  3. Duy NguyenJul 19, 2014
  4. Johannes SixtJul 18, 2014
  5. 1/2 lockfile.c: remove PATH_MAX limitation (except in resolve_symlink)Nguyễn Thái Ngọc Duy, Jul 20, 2014
  6. 2/2 Make locked paths absolute when current directory is changedNguyễn Thái Ngọc Duy, Jul 20, 2014
  7. Ramsay JonesJul 21, 2014
  8. Duy NguyenJul 21, 2014
  9. Ramsay JonesJul 21, 2014
  10. Junio C HamanoJul 21, 2014
  11. Duy NguyenJul 23, 2014
  12. Yue Lin HoJul 31, 2014
  13. Duy NguyenJul 31, 2014
  14. Philip OakleyJul 20, 2014
  15. Duy NguyenJul 20, 2014
  16. 0/3 Keep .lock file paths absoluteNguyễn Thái Ngọc Duy, Jul 31, 2014
  17. 1/3 lockfile.c: remove PATH_MAX limitation (except in resolve_symlink)Nguyễn Thái Ngọc Duy, Jul 31, 2014
  18. Junio C HamanoAug 1, 2014
  19. Junio C HamanoAug 1, 2014
  20. Torsten BögershausenAug 2, 2014
  21. Duy NguyenAug 4, 2014
  22. Junio C HamanoAug 4, 2014
  23. Michael HaggertyAug 5, 2014
  24. Yue Lin HoSep 3, 2014
  25. Junio C HamanoAug 1, 2014
  26. 2/3 lockfile.c: remove PATH_MAX limit in resolve_symlink()Nguyễn Thái Ngọc Duy, Jul 31, 2014
  27. 3/3 lockfile.c: store absolute pathNguyễn Thái Ngọc Duy, Jul 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.