From: Nguyen Thai Ngoc Duy Date: Wed, 16 Mar 2011 14:16:35 GMT Subject: Re: [PATCH 1/3] make_absolute_path: Don't try to copy a string to itself Message-ID: In-Reply-To: <1300210062.19100.46.camel@bee.lab.cmartin.tk> 2011/3/16 Carlos Martín Nieto : > I've been changing this a bit, trying to make all the paths normalized, > but it'll take a bit longer. I'll send a partial patch when I've > finished something worth seeing (for the moment, the test fail if there > is a symlink somewhere in the tree, as I've mixed > real_path/make_absolute_path and absolute_path/make_nonrelative_path a > bit). > >  Is it a good idea to normalize the paths? Otherwise, everything could > be replaced by real_path/make_absolute_path (as most calls already are). > As it's transitive and these paths aren't stored permanently (other than > with clone), as long as we agree on one representation, it should be > fine. I think the question is whether it's _necessary_ to do that. Any gain? make_absolute_path() calls are not in critical path, I don't think we should bother much, unless there are bugs like one you fixed in your patch. >  Is there a performance hit if we resolve links all the time? If we run > everything through normalize_path(_copy), is it slower than resolving > links? What paths are you talking about? If they are inside $GIT_DIR, we touch them quite often. But there are not many of them (unless you spread loose objects all over the place), resolving links should not be an issue. If they are inside worktree, maybe. Though I'm not sure if we want to normalize all of them. -- Duy