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
+$