On Sun, 26 Mar 2006, Timo Hirvonen wrote: > > $ git-whatchanged old-file.c > fatal: 'old-file.c': No such file or directory > > $ touch old-file.c > $ git-whatchanged old-file.c > > Hah, it worked! It worked even before: git-whatchanged -- old-file.c always works. If you think of the "filename spec" as _always_ having to have a "--" to separate the filenames from the other arguments, you're thinking the right way. Then, there's a _shorthand_ for existing files, where we allow users being lazy (because _I_ am very lazy indeed), which allows dropping of the "--", but then the code requires that the filenames are real filenames as of now. > Hmm... this works too without the touch-hack: > > $ git-whatchanged file.c old-file.c > > I wish I had known this before. Actually, it -shouldn't- work. It's just that "git-rev-parse" isn't as anal as it should be. Here's a fix. Linus ---- diff --git a/rev-parse.c b/rev-parse.c index f90e999..104b1e2 100644 --- a/rev-parse.c +++ b/rev-parse.c @@ -172,7 +172,9 @@ int main(int argc, char **argv) char *dotdot; if (as_is) { - show_file(arg); + if (show_file(arg) && as_is < 2) + if (lstat(arg, &st) < 0) + die("'%s': %s", arg, strerror(errno)); continue; } if (!strcmp(arg,"-n")) { @@ -192,7 +194,7 @@ int main(int argc, char **argv) if (*arg == '-') { if (!strcmp(arg, "--")) { - as_is = 1; + as_is = 2; /* Pass on the "--" if we show anything but files.. */ if (filter & (DO_FLAGS | DO_REVS)) show_file(arg); - : 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