Add post-merge hook, related documentation, and tests.
[gitweb.git] / t / t4013-diff-various.sh
index 22984e3db742365117e19040d88a6c79daf284cb..9eec754221d85856613b01ec878ef4cb492aceb0 100755 (executable)
@@ -7,6 +7,9 @@ test_description='Various diff formatting options'
 
 . ./test-lib.sh
 
+LF='
+'
+
 test_expect_success setup '
 
        GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
@@ -14,6 +17,7 @@ test_expect_success setup '
        export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
 
        mkdir dir &&
+       mkdir dir2 &&
        for i in 1 2 3; do echo $i; done >file0 &&
        for i in A B; do echo $i; done >dir/sub &&
        cat file0 >file2 &&
@@ -31,7 +35,7 @@ test_expect_success setup '
        for i in C D; do echo $i; done >>dir/sub &&
        rm -f file2 &&
        git update-index --remove file0 file2 dir/sub &&
-       git commit -m Second &&
+       git commit -m "Second${LF}${LF}This is the second commit." &&
 
        GIT_AUTHOR_DATE="2006-06-26 00:02:00 +0000" &&
        GIT_COMMITTER_DATE="2006-06-26 00:02:00 +0000" &&
@@ -70,7 +74,8 @@ test_expect_success setup '
        for i in 1 2; do echo $i; done >>dir/sub &&
        git update-index file0 dir/sub &&
 
-       EDITOR=: VISUAL=: git commit --amend &&
+       git config log.showroot false &&
+       git commit --amend &&
        git show-branch
 '
 
@@ -85,6 +90,7 @@ test_expect_success setup '
 +*+ [initial] Initial
 EOF
 
+V=`git version | sed -e 's/^git version //' -e 's/\./\\./g'`
 while read cmd
 do
        case "$cmd" in
@@ -99,12 +105,14 @@ do
        test_expect_success "git $cmd" '
                {
                        echo "\$ git $cmd"
-                       git $cmd
+                       git $cmd |
+                       sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
+                           -e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
                        echo "\$"
                } >"$actual" &&
                if test -f "$expect"
                then
-                       diff -u "$expect" "$actual" &&
+                       git diff "$expect" "$actual" &&
                        rm -f "$actual"
                else
                        # this is to help developing new tests.
@@ -137,7 +145,10 @@ diff-tree --pretty --summary initial
 diff-tree --pretty --stat --summary initial
 diff-tree --pretty --root -p initial
 diff-tree --pretty --root --stat initial
-#diff-tree --pretty --root --summary initial
+# improved by Timo's patch
+diff-tree --pretty --root --summary initial
+# improved by Timo's patch
+diff-tree --pretty --root --summary -r initial
 diff-tree --pretty --root --stat --summary initial
 diff-tree --pretty --patch-with-stat initial
 diff-tree --pretty --root --patch-with-stat initial
@@ -149,6 +160,7 @@ diff-tree --pretty=oneline --root initial
 diff-tree --pretty=oneline -p initial
 diff-tree --pretty=oneline --root -p initial
 diff-tree --pretty=oneline --patch-with-stat initial
+# improved by Timo's patch
 diff-tree --pretty=oneline --root --patch-with-stat initial
 diff-tree --pretty=oneline --patch-with-raw initial
 diff-tree --pretty=oneline --root --patch-with-raw initial
@@ -171,11 +183,9 @@ diff-tree --cc --stat --summary master
 # stat summary should show the diffstat and summary with the first parent
 diff-tree -c --stat --summary side
 diff-tree --cc --stat --summary side
-# this one gives an extra newline after stat, which should be removed
-# diff-tree --cc --patch-with-stat master
-# this one gives an extra newline after stat, which should be removed
-# other than that it shows the correct example -- stat and summary are
-# against the first parent, and patch-looking combined diff follows.
+# improved by Timo's patch
+diff-tree --cc --patch-with-stat master
+# improved by Timo's patch
 diff-tree --cc --patch-with-stat --summary master
 # this is correct
 diff-tree --cc --patch-with-stat --summary side
@@ -187,7 +197,9 @@ log --root -p master
 log --patch-with-stat master
 log --root --patch-with-stat master
 log --root --patch-with-stat --summary master
+# improved by Timo's patch
 log --root -c --patch-with-stat --summary master
+# improved by Timo's patch
 log --root --cc --patch-with-stat --summary master
 log -SF master
 log -SF -p master
@@ -199,7 +211,9 @@ whatchanged --root -p master
 whatchanged --patch-with-stat master
 whatchanged --root --patch-with-stat master
 whatchanged --root --patch-with-stat --summary master
+# improved by Timo's patch
 whatchanged --root -c --patch-with-stat --summary master
+# improved by Timo's patch
 whatchanged --root --cc --patch-with-stat --summary master
 whatchanged -SF master
 whatchanged -SF -p master
@@ -219,6 +233,29 @@ show --patch-with-stat side
 show --patch-with-raw side
 show --patch-with-stat --summary side
 
+format-patch --stdout initial..side
+format-patch --stdout initial..master^
+format-patch --stdout initial..master
+format-patch --attach --stdout initial..side
+format-patch --attach --stdout initial..master^
+format-patch --attach --stdout initial..master
+format-patch --inline --stdout initial..side
+format-patch --inline --stdout initial..master^
+format-patch --inline --stdout initial..master
+format-patch --inline --stdout --subject-prefix=TESTCASE initial..master
+config format.subjectprefix DIFFERENT_PREFIX
+format-patch --inline --stdout initial..master^^
+
+diff --abbrev initial..side
+diff -r initial..side
+diff --stat initial..side
+diff -r --stat initial..side
+diff initial..side
+diff --patch-with-stat initial..side
+diff --patch-with-raw initial..side
+diff --patch-with-stat -r initial..side
+diff --patch-with-raw -r initial..side
+diff --name-status dir2 dir
 EOF
 
 test_done