diff options
author | Linus Torvalds <torvalds@osdl.org> | 2005-08-16 18:06:34 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-16 18:47:22 -0700 |
commit | d288a70030eaa5c205a72b4548635e17f8e523c0 (patch) | |
tree | e446e859256bd90a9eefd1cb2406707ea5b9d555 /rev-parse.c | |
parent | 83db04ff878f40146952ee5d3d2d113568455f5b (diff) | |
download | git-d288a70030eaa5c205a72b4548635e17f8e523c0.tar.gz |
[PATCH] Make "git diff" work inside relative subdirectories
We always show the diff as an absolute path, but pathnames to diff are
taken relative to the current working directory (and if no pathnames are
given, the default ends up being all of the current working directory).
Note that "../xyz" also works, so you can do
cd linux/drivers/char
git diff ../block
and it will generate a diff of the linux/drivers/block changes.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'rev-parse.c')
-rw-r--r-- | rev-parse.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/rev-parse.c b/rev-parse.c index 1c6ae76f9a..39cf63540e 100644 --- a/rev-parse.c +++ b/rev-parse.c @@ -134,7 +134,8 @@ int main(int argc, char **argv) { int i, as_is = 0; unsigned char sha1[20]; - + const char *prefix = setup_git_directory(); + for (i = 1; i < argc; i++) { char *arg = argv[i]; char *dotdot; @@ -189,6 +190,10 @@ int main(int argc, char **argv) for_each_ref(show_reference); continue; } + if (!strcmp(arg, "--show-prefix")) { + puts(prefix); + continue; + } show_arg(arg); continue; } |