diff options
| author | Junio C Hamano <gitster@pobox.com> | 2008-03-03 01:20:19 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2008-03-03 01:20:19 -0800 |
| commit | f830d45b9fdb04a5d79c25bb3a3d891d8d3b58e9 (patch) | |
| tree | cfa4d86ace88be833c37498023967023bfa02743 /builtin-diff.c | |
| parent | bd56ff54f710d463a6858bdc7ef6245f9ef30f42 (diff) | |
| parent | 7435982102093179474a128648179a44042d8a1c (diff) | |
| download | git-f830d45b9fdb04a5d79c25bb3a3d891d8d3b58e9.tar.gz | |
Merge commit '74359821' into js/reflog-delete
* commit '74359821': (128 commits)
tests: introduce test_must_fail
Fix builtin checkout crashing when given an invalid path
templates/Makefile: don't depend on local umask setting
Correct name of diff_flush() in API documentation
Start preparing for 1.5.4.4
format-patch: remove a leftover debugging message
completion: support format-patch's --cover-letter option
Eliminate confusing "won't bisect on seeked tree" failure
builtin-reflog.c: don't install new reflog on write failure
send-email: fix In-Reply-To regression
git-svn: Don't prompt for client cert password everytime.
git.el: Do not display empty directories.
Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR
Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
Prompt to continue when editing during rebase --interactive
Documentation/git svn log: add a note about timezones.
git-p4: Support usage of perforce client spec
git-p4: git-p4 submit cleanups.
git-p4: Removed git-p4 submit --direct.
git-p4: Clean up git-p4 submit's log message handling.
...
Diffstat (limited to 'builtin-diff.c')
| -rw-r--r-- | builtin-diff.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/builtin-diff.c b/builtin-diff.c index 8f53f52dcb..444ff2fd92 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -44,12 +44,17 @@ static void stuff_change(struct diff_options *opt, tmp_u = old_sha1; old_sha1 = new_sha1; new_sha1 = tmp_u; tmp_c = old_name; old_name = new_name; new_name = tmp_c; } + + if (opt->prefix && + (strncmp(old_name, opt->prefix, opt->prefix_length) || + strncmp(new_name, opt->prefix, opt->prefix_length))) + return; + one = alloc_filespec(old_name); two = alloc_filespec(new_name); fill_filespec(one, old_sha1, old_mode); fill_filespec(two, new_sha1, new_mode); - /* NEEDSWORK: shouldn't this part of diffopt??? */ diff_queue(&diff_queued_diff, one, two); } @@ -246,6 +251,10 @@ int cmd_diff(int argc, const char **argv, const char *prefix) if (diff_setup_done(&rev.diffopt) < 0) die("diff_setup_done failed"); } + if (rev.diffopt.prefix && nongit) { + rev.diffopt.prefix = NULL; + rev.diffopt.prefix_length = 0; + } DIFF_OPT_SET(&rev.diffopt, ALLOW_EXTERNAL); DIFF_OPT_SET(&rev.diffopt, RECURSIVE); |
