Re: [PATCH] replace: List replacement along with the object
From: Michael J Gruber <hidden>
Date: 2016-06-15 22:51:55
Christian Couder venit, vidit, dixit 25.08.2011 18:29:
On Thu, Aug 25, 2011 at 4:39 PM, Michael J Gruber [off-list ref] wrote:quoted
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.
quoted
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:
Michael J Gruber [off-list ref] writes:quoted
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