Re: [PATCH] replace: List replacement along with the object
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Aug 26, 2011, 07:38 UTC
- Message-ID
- <4E574D61.8050501@drmicha.warpmail.net>
- In-Reply-To
- <CAP8UFD2Cr4UQjWa=pRvcqgyX_Ed+qjts=TujWRdyk4dUZsd_7Q@mail.gmail.com>
Christian Couder venit, vidit, dixit 25.08.2011 18:29:
Show 7 quoted lines
> On Thu, Aug 25, 2011 at 4:39 PM, Michael J Gruber > <git@drmicha.warpmail.net> wrote: >> The documentation could be misunderstood as if "git replace -l" lists >> the replacements of the specified objects. Currently, it lists the >> replaced objects. > > You could just change the documentation to make it more explicit.
Well, sure. I just didn't find the current form that useful.
Show 7 quoted lines
>> Change the output to the form "<object> <replacement>" so that there is >> an easy way to find the replacement, besides the more difficult to find >> git show-ref $(git replace -l). > > I shamelessly copied the "-l <pattern>" feature and the documentation > from "git tag". If you just change the output of "git replace -l" it > will make the UI inconsistent between both commands.
I don't think many people will expect consistency between branch and tag on the one hand, and replace refs on the other hand. It requires the knowledge that a replacement is basically a lightweight tag stored in a different namespace in refs/, which I would actually consider an implementation detail.
> Maybe you could add a "-L <pattern>" feature to "git replace", "git > tag" and "git branch" that would output "<ref name> <ref content>"?
I'd use "-v" then if this is about consistency, because that *always* means "verbose", and migrate the misnamed "git tag -v"...
Junio C Hamano venit, vidit, dixit 25.08.2011 21:07:
Show 8 quoted lines
> Michael J Gruber <git@drmicha.warpmail.net> writes: > >> The documentation could be misunderstood as if "git replace -l" lists >> the replacements of the specified objects. Currently, it lists the >> replaced objects. > Seeing that you had to change existing tests, I do not think this is an > improvement. The existing scripts can read the list of objects and find > replacement themselves (if they want to find that out, that is), no?
If "replace -l" is considered fair game for scripts then the output should probably not change, though I left the meaning of "$1" for each line of the output as is on purpose.
But, how would scripts find the replacement? rev-parse does not do it, rev-list does not do it, and using show-ref requires the user to know about the actual implementation as refs under refs/replace.
Seems that the doc change is the only option.
Michael