@matheusbsbs / matheus-bagliano / commits / d61027b21f
Fork 0

Skip timestamp differences for diff --no-index

We display empty diffs for files whose timestamps have changed. Usually, refreshing the index makes those empty diffs go away. However, when not using the index they are not very useful and there is no option to suppress them. This forces on the skip_stat_unmatch option for diff --no-index, suppressing any empty diffs. This option is also used for diffs against the index when "diff.autorefreshindex" is set, but that option does not apply to diff --no-index. Signed-off-by: Michael Spang <mspang@uwaterloo.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael Spang committed Feb 18, 2009 at 01:48 UTC d61027b21f403a74ba16191756d22717a2e95bd4
3 files changed +8
diff-no-index.c
+1
@@ -247,6 +247,7 @@ void diff_no_index(struct rev_info *revs,
247 else
248 revs->diffopt.paths = argv + argc - 2;
249 revs->diffopt.nr_paths = 2;
250 + revs->diffopt.skip_stat_unmatch = 1;
251
252 DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS);
253 DIFF_OPT_SET(&revs->diffopt, NO_INDEX);
t/t4013-diff-various.sh
+5
@@ -74,6 +74,10 @@ test_expect_success setup '
74 for i in 1 2; do echo $i; done >>dir/sub &&
75 git update-index file0 dir/sub &&
76
77 + mkdir dir3 &&
78 + cp dir/sub dir3/sub &&
79 + test-chmtime +1 dir3/sub &&
80 +
81 git config log.showroot false &&
82 git commit --amend &&
83 git show-branch
@@ -262,6 +266,7 @@ diff --patch-with-raw -r initial..side
266 diff --name-status dir2 dir
267 diff --no-index --name-status dir2 dir
268 diff --no-index --name-status -- dir2 dir
269 +diff --no-index dir dir3
270 diff master master^ side
271 EOF
272
t/t4013/diff.diff_--no-index_dir_dir3 new
+2
@@ -0,0 +1,2 @@
1 +$ git diff --no-index dir dir3
2 +$