diff --relative: help working in a bare repository
This allows the --relative option to say which subdirectory to pretend to be in, so that in a bare repository, you can say: $ git log --relative=drivers/ v2.6.20..v2.6.22 -- drivers/scsi/ Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
cd676a5136
commit
c0cb4a0679
@ -170,10 +170,13 @@ endif::git-format-patch[]
|
||||
Swap two inputs; that is, show differences from index or
|
||||
on-disk file to tree contents.
|
||||
|
||||
--relative::
|
||||
--relative[=<path>]::
|
||||
When run from a subdirectory of the project, it can be
|
||||
told to exclude changes outside the directory and show
|
||||
pathnames relative to it with this option.
|
||||
pathnames relative to it with this option. When you are
|
||||
not in a subdirectory (e.g. in a bare repository), you
|
||||
can name which subdirectory to make the output relative
|
||||
to by giving a <path> as an argument.
|
||||
|
||||
--text::
|
||||
Treat all files as text.
|
||||
|
4
diff.c
4
diff.c
@ -2302,6 +2302,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
|
||||
options->detect_rename = 0;
|
||||
else if (!strcmp(arg, "--relative"))
|
||||
DIFF_OPT_SET(options, RELATIVE_NAME);
|
||||
else if (!prefixcmp(arg, "--relative=")) {
|
||||
DIFF_OPT_SET(options, RELATIVE_NAME);
|
||||
options->prefix = arg + 11;
|
||||
}
|
||||
|
||||
/* xdiff options */
|
||||
else if (!strcmp(arg, "-w") || !strcmp(arg, "--ignore-all-space"))
|
||||
|
@ -720,7 +720,7 @@ void init_revisions(struct rev_info *revs, const char *prefix)
|
||||
revs->commit_format = CMIT_FMT_DEFAULT;
|
||||
|
||||
diff_setup(&revs->diffopt);
|
||||
if (prefix) {
|
||||
if (prefix && !revs->diffopt.prefix) {
|
||||
revs->diffopt.prefix = prefix;
|
||||
revs->diffopt.prefix_length = strlen(prefix);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user