Re: Usability improvement request: git show revision -- file
From: Piotr Krukowiecki <hidden>
Date: 2016-06-15 22:50:57
On Thu, Mar 31, 2011 at 9:50 AM, Michael J Gruber [off-list ref] wrote:
Piotr Krukowiecki venit, vidit, dixit 31.03.2011 08:45:quoted
Hi, if there's existing way to do this please tell me. There's this file "src/subdir/file". I'm in the "src" directory and want to see the "file" at specific revision. Knowing about git show I'd expect something like this to work: $ git show master -- subdir/file But it shows nothing (no output, no warning)....because you are asking git to show the commit master, filtered by subdir/file, and if that file is not changed there, the commit is not
It wasn't - I was doing git-blame and wanted to see file as it was before the blamed commit.
selected. If it is changed there, it shows you only the diff affecting
I see - that makes sense too.
that file. (We might want to change this to filter the diff only.)
Not sure what you mean by that?
quoted
Following also does not work as expected: $ git show master:subdir/file fatal: Path 'src/subdir/file' exists, but not 'subdir/file'. Did you mean 'master:src/subdir/file'?But git is really understanding about your situation, isn't it? ;)
Yeah, but this looks like a workround for a common problem - people specify relative path a lot, so a warning was added.
quoted
Of course following works: $ git show master:src/subdir/file but it's not very convenient to have to specify full path, and it's not what you would expect given that most other commands accept "-- relativepath" syntax.It's not the command in this case, but the "commit:pathspec" syntax, and for every command which understands it, it is relative to root (i.e. expects a full path). But we do have a syntax for relative: git show master:./subdir/file
Thanks, I'll try to remember. I don't have a better idea for solving this problem. -- Piotr Krukowiecki