From: Dana How Date: Fri, 04 May 2007 08:45:17 GMT Subject: Re: [PATCH] Support ent:relative_path Message-ID: <56b7f5510705040145k781da6farff3d02c3c1a5f3f9@mail.gmail.com> In-Reply-To: <7v7irpuhhr.fsf@assigned-by-dhcp.cox.net> On 5/4/07, Junio C Hamano wrote: > I do not think it is wrong per-se, to want to make this hold true: > > A=$(git rev-parse :somedir/file) > B=$(cd somedir && git rev-parse :file) > test "$A" = "$B" > > One thing I am reasonably certain however is that this should > NOT be conditional to a config setting. Doing so would force > scripts that take (or compute) path and commit and concatenate > them to make "${commit}:${path}" to name a blob (or tree) to > first inspect the current setting of core.relativepaths and undo > what the new code does by prefixing/subtracting the prefix > string depending on the config. > > In other words, having that config is not really helping scripts > or compatibility. > > I think the choices are: > > (1) we say it was a mistake that we did not make it relative to > the current directory when we introduced the X: > syntax (X could be empty or :[0-3]: for index, or a commit > or tree object name), and change the semantics in a future > major release for everybody, apologizing for potentially > breaking existing scripts; or > > (2) keep the current behaviour as is, and come up with a > different syntax to use relative; or > > (3) do nothing. > > My preference is (2), (3) and then (1), but I do not have > offhand a suggestion for a good metacharacter we could use. Let us require: * No config settings as you prefer * Current interpretations are unchanged. The current path supports :fullpath :/string :./relpath [assuming core.relativepaths=no always since it goes away]. (:/string is the "find string in commit msg" feature.) A new metacharacter lets us drop the "./" , and I think that's desirable. How about = ? It's not even shifted on my keyboard: ent=relpath ent=2=relpath ent=/fullpath 1. We would accept the same new metacharacter before stage if any. 2, You could still use ent:/string , or ent:fullpath . The patch should also be extended so relpath can start with a sequence of ./ or ../ prefixes, which is easily handled in prepend_prefix().. What do you think of "=" ? -- Dana L. How danahow@gmail.com +1 650 804 5991 cell