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

Re: [PATCH v3 0/8] Fix GIT_CEILING_DIRECTORIES that contain symlinks

From
David Aguilar <davvid@gmail.com>
Date
Nov 13, 2012, 20:50 UTC
Message-ID
<CAJDDKr5F5EcXaTuPWgE5MZJQ=Of6MwW+RmRhhXOLyfQzanjEwQ@mail.gmail.com>
In-Reply-To
<7v4nkuiuhe.fsf@alter.siamese.dyndns.org>
On Mon, Nov 12, 2012 at 9:47 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> Michael Haggerty <mhagger@alum.mit.edu> writes:
>
>> The log message of the original commit (0454dd93bf) described the
>> following scenario: a /home partition under which user home directories
>> are automounted, and setting GIT_CEILING_DIRECTORIES=/home to avoid
>> hitting /home/.git, /home/.git/objects, and /home/objects (which would
>> attempt to automount those directories).  I believe that this scenario
>> would not be slowed down by my patches.
>>
>> How do you use GIT_CEILING_DIRECTORIES that the proposed changes cause a
>> slowdown?
>
> Yeah, I was also wondering about that.
>
> David?

I double-checked our configuration and all the parent directories of those listed in GIT_CEILING_DIRECTORIES are local, so our particular configuration would not have a performance hit.

We do have multiple directories listed there. Some of them share a parent directory. I'm assuming the implementation is simple and does not try and avoid repeating the check when the parent dir is the same across multiple entries.

In any case, it won't be a problem in practice based on my reading of the current code.

Show 15 quoted lines
>>> Is there another way to accomplish this without the performance hit?
>>> Maybe something that can be solved with configuration?
>>
>> Without doing the symlink expansion there is no way for git to detect
>> that GIT_CEILING_DIRECTORIES contains symlinks and is therefore
>> ineffective.  So the user has no warning about the misconfiguration
>> (except that git runs slowly).
>>
>> On 10/29/2012 02:42 AM, Junio C Hamano wrote:
>>> Perhaps not canonicalize elements on the CEILING list ourselves? If
>>> we make it a user error to put symlinked alias in the variable, and
>>> document it clearly, wouldn't it suffice?
>>
>> There may be no other choice.  (That, and fix the test suite in another
>> way to tolerate a $PWD that involves symlinks.)
-- 
David
Previous: Junio C HamanoNext: Michael Haggerty
Message 17 of 26 in “Fix GIT_CEILING_DIRECTORIES that contain symlinks”
  1. 0/8 Fix GIT_CEILING_DIRECTORIES that contain symlinksMichael Haggerty, Oct 21, 2012
  2. 1/8 Introduce new static function real_path_internal()Michael Haggerty, Oct 21, 2012
  3. 2/8 real_path_internal(): add comment explaining use of cwdMichael Haggerty, Oct 21, 2012
  4. 3/8 Introduce new function real_path_if_valid()Michael Haggerty, Oct 21, 2012
  5. 4/8 longest_ancestor_length(): use string_list_split()Michael Haggerty, Oct 21, 2012
  6. 5/8 longest_ancestor_length(): take a string_list argument for prefixesMichael Haggerty, Oct 21, 2012
  7. 6/8 longest_ancestor_length(): require prefix list entries to be normalizedMichael Haggerty, Oct 21, 2012
  8. Johannes SixtOct 22, 2012
  9. 7/8 normalize_ceiling_entry(): resolve symlinksMichael Haggerty, Oct 21, 2012
  10. 8/8 string_list_longest_prefix(): remove functionMichael Haggerty, Oct 21, 2012
  11. Junio C HamanoOct 21, 2012
  12. Michael HaggertyOct 22, 2012
  13. David AguilarOct 29, 2012
  14. Junio C HamanoOct 29, 2012
  15. Michael HaggertyOct 29, 2012
  16. Junio C HamanoNov 12, 2012
  17. David AguilarNov 13, 2012
  18. Michael HaggertyNov 15, 2012
  19. Anders KaseorgFeb 20, 2013
  20. Junio C HamanoFeb 20, 2013
  21. [RFC] Provide a mechanism to turn off symlink resolution in ceiling pathsMichael Haggerty, Feb 20, 2013
  22. Junio C HamanoFeb 20, 2013
  23. Junio C HamanoFeb 21, 2013
  24. Michael HaggertyFeb 22, 2013
  25. Anders KaseorgFeb 20, 2013
  26. Lars DamerowOct 29, 2012

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.