On Fri, Dec 6, 2013 at 5:07 PM, Jeff King <peff@xxxxxxxx> wrote: > When rev-parse looks at whether an argument like "foo..bar" > or "foobar^@" is a difference or parent-shorthand, it > internally munges the arguments so that it can pass the > individual rev arguments to get_sha1. However, we do not > consistently un-munge the result. > > For cases where we do not match (e.g., "doesnotexist..HEAD"), > we wouuld then want to try to treat the argument as a s/wouuld/would/ > filename. try_difference gets this right, and always > unmunges in this case. However, try_parent_shorthand never > unmunges, leading to incorrect error messages, or even > incorrect results: > > $ git rev-parse foobar^@ > foobar > fatal: ambiguous argument 'foobar': unknown revision or path not in the working tree. > Use '--' to separate paths from revisions, like this: > 'git <command> [<revision>...] -- [<file>...]' > > $ >foobar > $ git rev-parse foobar^@ > foobar > > For cases where we do match, neither function unmunges. This > does not currently matter, since we are done with the > argument. However, a future patch will do further > processing, and this prepares for it. In addition, it's > simply a confusing interface for some cases to modify the > const argument, and others not to. > > Signed-off-by: Jeff King <peff@xxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html