Subject: Re: [FEATURE-REQUEST] difftool --dir-diff: use the commit names as directory names instead of left/right

From: John Keeping <[email-masked]>
Date: Sat, 23 Mar 2013 12:36:03 +0000

On Fri, Mar 22, 2013 at 09:56:17PM -0700, David Aguilar wrote:
> On Fri, Mar 22, 2013 at 9:52 AM, Christoph Anton Mitterer
> <[email-masked]> wrote:
> > Hi.
> >
> > Right now, when I use difftool --dir-diff, the temp dirs are creates as
> > e.g.:
> > /tmp/git-difftool.QqP8x/left
> > /tmp/git-difftool.QqP8x/right
> >
> > Wouldn't it be nice, if instead of left/right... the specified commit
> > name would be used?
> >
> > e.g.
> > /tmp/git-difftool.QqP8x/r1.1.1
> > /tmp/git-difftool.QqP8x/HEAD
> > or
> > /tmp/git-difftool.QqP8x/fd4e4005a4b7b3e638bc405be020b867f8881e72
> > /tmp/git-difftool.QqP8x/ce0747b74fccd20707b6f495068503e69e5473df
> >
> > Cause then, one would see in the difftool which side is what, without
> > the need to remember how git difftool was invoked.
> >
> >
> > Of course one might probably need to escape the commit names if they
> > contain stuff like "/" or "..", etc.
> 
> I can see that being pretty helpful.
> If we do it we should go all the way.
> 
> What do you all think about something like the output of
> "git describe --always" instead of the SHA-1?

I think Christoph was suggesting that it should use the revision as
specified by the user, presumably falling back to HEAD when only one
revision has been specified.

That's likely to be the easiest to understand since git-describe could
show "v1.8.2-134-g328455f" (or "remotes/origin/maint-121-g328455f" with
--all) where the user specified HEAD^.  I suspect in that case we have
to be careful about special characters, perhaps it's best to just fall
back to the SHA1 if we encounter something like
"origin/master^{/^diff.c}" which is likely to cause issues with shell
quoting.

The interesting question around this is precisely how commit specifiers
map to directory names and at what point (if ever) we give up and use
the SHA1.  At the very least we need to translate '/' to something else
('~' maybe?).

> BTW there are some patches in-flight around difftool so
> you'll probably want to apply them first if you're going to
> give it a try.  patches very much appreciated! ;-)
> If no one beats me to it, I can give it a try after the weekend.
> -- 
> David