Skip to content

Commit

Permalink
--dirstat: Describe non-obvious differences relative to --stat or reg…
Browse files Browse the repository at this point in the history
…ular diff

Also add a testcase documenting the current behavior.

Improved-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johan Herland authored and Junio C Hamano committed Apr 11, 2011
1 parent 5fb41b8 commit 204f01a
Showing 6 changed files with 40 additions and 7 deletions.
4 changes: 4 additions & 0 deletions Documentation/diff-options.txt
Original file line number Diff line number Diff line change
@@ -72,6 +72,10 @@ endif::git-format-patch[]
a cut-off percent (3% by default) are not shown. The cut-off percent
can be set with `--dirstat=<limit>`. Changes in a child directory are not
counted for the parent directory, unless `--cumulative` is used.
+
Note that the `--dirstat` option computes the changes while ignoring
pure code movements within a file. In other words, rearranging lines
in a file is not counted as a change.

--dirstat-by-file[=<limit>]::
Same as `--dirstat`, but counts changed files instead of lines.
27 changes: 21 additions & 6 deletions t/t4013-diff-various.sh
Original file line number Diff line number Diff line change
@@ -80,18 +80,31 @@ test_expect_success setup '
git config log.showroot false &&
git commit --amend &&
GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout -b rearrange initial &&
for i in B A; do echo $i; done >dir/sub &&
git add dir/sub &&
git commit -m "Rearranged lines in dir/sub" &&
git checkout master &&
git show-branch
'

: <<\EOF
! [initial] Initial
* [master] Merge branch 'side'
! [side] Side
---
- [master] Merge branch 'side'
*+ [side] Side
* [master^] Second
+*+ [initial] Initial
! [rearrange] Rearranged lines in dir/sub
! [side] Side
----
+ [rearrange] Rearranged lines in dir/sub
- [master] Merge branch 'side'
* + [side] Side
* [master^] Third
* [master~2] Second
+*++ [initial] Initial
EOF

V=`git version | sed -e 's/^git version //' -e 's/\./\\./g'`
@@ -287,6 +300,8 @@ diff --no-index --name-status -- dir2 dir
diff --no-index dir dir3
diff master master^ side
diff --dirstat master~1 master~2
# --dirstat doesn't notice changes that simply rearrange existing lines
diff --dirstat initial rearrange
EOF

test_expect_success 'log -S requires an argument' '
2 changes: 2 additions & 0 deletions t/t4013/diff.diff_--dirstat_initial_rearrange
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
$ git diff --dirstat initial rearrange
$
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
$ git format-patch --stdout --cover-letter -n initial..master^
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
From: C O Mitter <committer@example.com>
Date: Mon, 26 Jun 2006 00:05:00 +0000
Date: Mon, 26 Jun 2006 00:06:00 +0000
Subject: [DIFFERENT_PREFIX 0/2] *** SUBJECT HERE ***

*** BLURB HERE ***
6 changes: 6 additions & 0 deletions t/t4013/diff.log_--decorate=full_--all
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
$ git log --decorate=full --all
commit cd4e72fd96faed3f0ba949dc42967430374e2290 (refs/heads/rearrange)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000

Rearranged lines in dir/sub

commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (HEAD, refs/heads/master)
Merge: 9a6d494 c7a2ab9
Author: A U Thor <author@example.com>
6 changes: 6 additions & 0 deletions t/t4013/diff.log_--decorate_--all
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
$ git log --decorate --all
commit cd4e72fd96faed3f0ba949dc42967430374e2290 (rearrange)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000

Rearranged lines in dir/sub

commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (HEAD, master)
Merge: 9a6d494 c7a2ab9
Author: A U Thor <author@example.com>

0 comments on commit 204f01a

Please sign in to comment.