merge(3p/git): Merge git subtree at v2.29.2
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
This commit is contained in:
parent
082c006c04
commit
f4609b896f
1485 changed files with 241535 additions and 109418 deletions
410
third_party/git/t/t4202-log.sh
vendored
410
third_party/git/t/t4202-log.sh
vendored
|
|
@ -5,6 +5,11 @@ test_description='git log'
|
|||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY/lib-gpg.sh"
|
||||
. "$TEST_DIRECTORY/lib-terminal.sh"
|
||||
. "$TEST_DIRECTORY/lib-log-graph.sh"
|
||||
|
||||
test_cmp_graph () {
|
||||
lib_test_cmp_graph --format=%s "$@"
|
||||
}
|
||||
|
||||
test_expect_success setup '
|
||||
|
||||
|
|
@ -87,12 +92,12 @@ test_expect_success 'format %w(,1,2)' '
|
|||
'
|
||||
|
||||
cat > expect << EOF
|
||||
804a787 sixth
|
||||
394ef78 fifth
|
||||
5d31159 fourth
|
||||
2fbe8c0 third
|
||||
f7dab8e second
|
||||
3a2fdcb initial
|
||||
$(git rev-parse --short :/sixth ) sixth
|
||||
$(git rev-parse --short :/fifth ) fifth
|
||||
$(git rev-parse --short :/fourth ) fourth
|
||||
$(git rev-parse --short :/third ) third
|
||||
$(git rev-parse --short :/second ) second
|
||||
$(git rev-parse --short :/initial) initial
|
||||
EOF
|
||||
test_expect_success 'oneline' '
|
||||
|
||||
|
|
@ -173,43 +178,45 @@ test_expect_success 'git config log.follow is overridden by --no-follow' '
|
|||
verbose test "$actual" = "$expect"
|
||||
'
|
||||
|
||||
# Note that these commits are intentionally listed out of order.
|
||||
last_three="$(git rev-parse :/fourth :/sixth :/fifth)"
|
||||
cat > expect << EOF
|
||||
804a787 sixth
|
||||
394ef78 fifth
|
||||
5d31159 fourth
|
||||
$(git rev-parse --short :/sixth ) sixth
|
||||
$(git rev-parse --short :/fifth ) fifth
|
||||
$(git rev-parse --short :/fourth) fourth
|
||||
EOF
|
||||
test_expect_success 'git log --no-walk <commits> sorts by commit time' '
|
||||
git log --no-walk --oneline 5d31159 804a787 394ef78 > actual &&
|
||||
git log --no-walk --oneline $last_three > actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git log --no-walk=sorted <commits> sorts by commit time' '
|
||||
git log --no-walk=sorted --oneline 5d31159 804a787 394ef78 > actual &&
|
||||
git log --no-walk=sorted --oneline $last_three > actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat > expect << EOF
|
||||
=== 804a787 sixth
|
||||
=== 394ef78 fifth
|
||||
=== 5d31159 fourth
|
||||
=== $(git rev-parse --short :/sixth ) sixth
|
||||
=== $(git rev-parse --short :/fifth ) fifth
|
||||
=== $(git rev-parse --short :/fourth) fourth
|
||||
EOF
|
||||
test_expect_success 'git log --line-prefix="=== " --no-walk <commits> sorts by commit time' '
|
||||
git log --line-prefix="=== " --no-walk --oneline 5d31159 804a787 394ef78 > actual &&
|
||||
git log --line-prefix="=== " --no-walk --oneline $last_three > actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat > expect << EOF
|
||||
5d31159 fourth
|
||||
804a787 sixth
|
||||
394ef78 fifth
|
||||
$(git rev-parse --short :/fourth) fourth
|
||||
$(git rev-parse --short :/sixth ) sixth
|
||||
$(git rev-parse --short :/fifth ) fifth
|
||||
EOF
|
||||
test_expect_success 'git log --no-walk=unsorted <commits> leaves list of commits as given' '
|
||||
git log --no-walk=unsorted --oneline 5d31159 804a787 394ef78 > actual &&
|
||||
git log --no-walk=unsorted --oneline $last_three > actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git show <commits> leaves list of commits as given' '
|
||||
git show --oneline -s 5d31159 804a787 394ef78 > actual &&
|
||||
git show --oneline -s $last_three > actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
|
@ -450,8 +457,7 @@ cat > expect <<EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'simple log --graph' '
|
||||
git log --graph --pretty=tformat:%s >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp_graph
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
|
|
@ -465,8 +471,7 @@ cat > expect <<EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'simple log --graph --line-prefix="123 "' '
|
||||
git log --graph --line-prefix="123 " --pretty=tformat:%s >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp_graph --line-prefix="123 "
|
||||
'
|
||||
|
||||
test_expect_success 'set up merge history' '
|
||||
|
|
@ -493,9 +498,7 @@ cat > expect <<\EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'log --graph with merge' '
|
||||
git log --graph --date-order --pretty=tformat:%s |
|
||||
sed "s/ *\$//" >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp_graph --date-order
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
|
|
@ -514,9 +517,7 @@ cat > expect <<\EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'log --graph --line-prefix="| | | " with merge' '
|
||||
git log --line-prefix="| | | " --graph --date-order --pretty=tformat:%s |
|
||||
sed "s/ *\$//" >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp_graph --line-prefix="| | | " --date-order
|
||||
'
|
||||
|
||||
cat > expect.colors <<\EOF
|
||||
|
|
@ -536,9 +537,7 @@ EOF
|
|||
|
||||
test_expect_success 'log --graph with merge with log.graphColors' '
|
||||
test_config log.graphColors " blue,invalid-color, cyan, red , " &&
|
||||
git log --color=always --graph --date-order --pretty=tformat:%s |
|
||||
test_decode_color | sed "s/ *\$//" >actual &&
|
||||
test_cmp expect.colors actual
|
||||
lib_test_cmp_colored_graph --date-order --format=%s
|
||||
'
|
||||
|
||||
test_expect_success 'log --raw --graph -m with merge' '
|
||||
|
|
@ -667,16 +666,14 @@ cat > expect <<\EOF
|
|||
* | | fifth
|
||||
* | | fourth
|
||||
|/ /
|
||||
* | third
|
||||
* / third
|
||||
|/
|
||||
* second
|
||||
* initial
|
||||
EOF
|
||||
|
||||
test_expect_success 'log --graph with merge' '
|
||||
git log --graph --date-order --pretty=tformat:%s |
|
||||
sed "s/ *\$//" >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp_graph --date-order
|
||||
'
|
||||
|
||||
test_expect_success 'log.decorate configuration' '
|
||||
|
|
@ -745,8 +742,24 @@ test_expect_success 'decorate-refs with glob' '
|
|||
octopus-a (octopus-a)
|
||||
reach
|
||||
EOF
|
||||
cat >expect.no-decorate <<-\EOF &&
|
||||
Merge-tag-reach
|
||||
Merge-tags-octopus-a-and-octopus-b
|
||||
seventh
|
||||
octopus-b
|
||||
octopus-a
|
||||
reach
|
||||
EOF
|
||||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs="heads/octopus*" >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs-exclude="heads/octopus*" \
|
||||
--decorate-refs="heads/octopus*" >actual &&
|
||||
test_cmp expect.no-decorate actual &&
|
||||
git -c log.excludeDecoration="heads/octopus*" log \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs="heads/octopus*" >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
|
|
@ -790,6 +803,9 @@ test_expect_success 'decorate-refs-exclude with glob' '
|
|||
EOF
|
||||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs-exclude="heads/octopus*" >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git -c log.excludeDecoration="heads/octopus*" log \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
|
|
@ -804,6 +820,9 @@ test_expect_success 'decorate-refs-exclude without globs' '
|
|||
EOF
|
||||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs-exclude="tags/reach" >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git -c log.excludeDecoration="tags/reach" log \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
|
|
@ -819,11 +838,19 @@ test_expect_success 'multiple decorate-refs-exclude' '
|
|||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs-exclude="heads/octopus*" \
|
||||
--decorate-refs-exclude="tags/reach" >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git -c log.excludeDecoration="heads/octopus*" \
|
||||
-c log.excludeDecoration="tags/reach" log \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git -c log.excludeDecoration="heads/octopus*" log \
|
||||
--decorate-refs-exclude="tags/reach" \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
test_expect_success 'decorate-refs and decorate-refs-exclude' '
|
||||
cat >expect.decorate <<-\EOF &&
|
||||
cat >expect.no-decorate <<-\EOF &&
|
||||
Merge-tag-reach (master)
|
||||
Merge-tags-octopus-a-and-octopus-b
|
||||
seventh
|
||||
|
|
@ -834,6 +861,40 @@ test_expect_success 'decorate-refs and decorate-refs-exclude' '
|
|||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs="heads/*" \
|
||||
--decorate-refs-exclude="heads/oc*" >actual &&
|
||||
test_cmp expect.no-decorate actual
|
||||
'
|
||||
|
||||
test_expect_success 'deocrate-refs and log.excludeDecoration' '
|
||||
cat >expect.decorate <<-\EOF &&
|
||||
Merge-tag-reach (master)
|
||||
Merge-tags-octopus-a-and-octopus-b
|
||||
seventh
|
||||
octopus-b (octopus-b)
|
||||
octopus-a (octopus-a)
|
||||
reach (reach)
|
||||
EOF
|
||||
git -c log.excludeDecoration="heads/oc*" log \
|
||||
--decorate-refs="heads/*" \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
test_expect_success 'decorate-refs-exclude and simplify-by-decoration' '
|
||||
cat >expect.decorate <<-\EOF &&
|
||||
Merge-tag-reach (HEAD -> master)
|
||||
reach (tag: reach, reach)
|
||||
seventh (tag: seventh)
|
||||
Merge-branch-tangle
|
||||
Merge-branch-side-early-part-into-tangle (tangle)
|
||||
tangle-a (tag: tangle-a)
|
||||
EOF
|
||||
git log -n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--decorate-refs-exclude="*octopus*" \
|
||||
--simplify-by-decoration >actual &&
|
||||
test_cmp expect.decorate actual &&
|
||||
git -c log.excludeDecoration="*octopus*" log \
|
||||
-n6 --decorate=short --pretty="tformat:%f%d" \
|
||||
--simplify-by-decoration >actual &&
|
||||
test_cmp expect.decorate actual
|
||||
'
|
||||
|
||||
|
|
@ -942,7 +1003,7 @@ cat >expect <<\EOF
|
|||
| |
|
||||
| | diff --git a/reach.t b/reach.t
|
||||
| | new file mode 100644
|
||||
| | index 0000000..10c9591
|
||||
| | index BEFORE..AFTER
|
||||
| | --- /dev/null
|
||||
| | +++ b/reach.t
|
||||
| | @@ -0,0 +1 @@
|
||||
|
|
@ -965,7 +1026,7 @@ cat >expect <<\EOF
|
|||
| | |
|
||||
| | | diff --git a/octopus-b.t b/octopus-b.t
|
||||
| | | new file mode 100644
|
||||
| | | index 0000000..d5fcad0
|
||||
| | | index BEFORE..AFTER
|
||||
| | | --- /dev/null
|
||||
| | | +++ b/octopus-b.t
|
||||
| | | @@ -0,0 +1 @@
|
||||
|
|
@ -981,7 +1042,7 @@ cat >expect <<\EOF
|
|||
| |
|
||||
| | diff --git a/octopus-a.t b/octopus-a.t
|
||||
| | new file mode 100644
|
||||
| | index 0000000..11ee015
|
||||
| | index BEFORE..AFTER
|
||||
| | --- /dev/null
|
||||
| | +++ b/octopus-a.t
|
||||
| | @@ -0,0 +1 @@
|
||||
|
|
@ -997,7 +1058,7 @@ cat >expect <<\EOF
|
|||
|
|
||||
| diff --git a/seventh.t b/seventh.t
|
||||
| new file mode 100644
|
||||
| index 0000000..9744ffc
|
||||
| index BEFORE..AFTER
|
||||
| --- /dev/null
|
||||
| +++ b/seventh.t
|
||||
| @@ -0,0 +1 @@
|
||||
|
|
@ -1031,7 +1092,7 @@ cat >expect <<\EOF
|
|||
| | | |
|
||||
| | | | diff --git a/tangle-a b/tangle-a
|
||||
| | | | new file mode 100644
|
||||
| | | | index 0000000..7898192
|
||||
| | | | index BEFORE..AFTER
|
||||
| | | | --- /dev/null
|
||||
| | | | +++ b/tangle-a
|
||||
| | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1053,7 +1114,7 @@ cat >expect <<\EOF
|
|||
| | | |
|
||||
| | | | diff --git a/2 b/2
|
||||
| | | | new file mode 100644
|
||||
| | | | index 0000000..0cfbf08
|
||||
| | | | index BEFORE..AFTER
|
||||
| | | | --- /dev/null
|
||||
| | | | +++ b/2
|
||||
| | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1069,7 +1130,7 @@ cat >expect <<\EOF
|
|||
| | | |
|
||||
| | | | diff --git a/1 b/1
|
||||
| | | | new file mode 100644
|
||||
| | | | index 0000000..d00491f
|
||||
| | | | index BEFORE..AFTER
|
||||
| | | | --- /dev/null
|
||||
| | | | +++ b/1
|
||||
| | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1085,7 +1146,7 @@ cat >expect <<\EOF
|
|||
| | | |
|
||||
| | | | diff --git a/one b/one
|
||||
| | | | new file mode 100644
|
||||
| | | | index 0000000..9a33383
|
||||
| | | | index BEFORE..AFTER
|
||||
| | | | --- /dev/null
|
||||
| | | | +++ b/one
|
||||
| | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1101,7 +1162,7 @@ cat >expect <<\EOF
|
|||
| | |
|
||||
| | | diff --git a/a/two b/a/two
|
||||
| | | deleted file mode 100644
|
||||
| | | index 9245af5..0000000
|
||||
| | | index BEFORE..AFTER
|
||||
| | | --- a/a/two
|
||||
| | | +++ /dev/null
|
||||
| | | @@ -1 +0,0 @@
|
||||
|
|
@ -1117,7 +1178,7 @@ cat >expect <<\EOF
|
|||
| | |
|
||||
| | | diff --git a/a/two b/a/two
|
||||
| | | new file mode 100644
|
||||
| | | index 0000000..9245af5
|
||||
| | | index BEFORE..AFTER
|
||||
| | | --- /dev/null
|
||||
| | | +++ b/a/two
|
||||
| | | @@ -0,0 +1 @@
|
||||
|
|
@ -1133,7 +1194,7 @@ cat >expect <<\EOF
|
|||
| |
|
||||
| | diff --git a/ein b/ein
|
||||
| | new file mode 100644
|
||||
| | index 0000000..9d7e69f
|
||||
| | index BEFORE..AFTER
|
||||
| | --- /dev/null
|
||||
| | +++ b/ein
|
||||
| | @@ -0,0 +1 @@
|
||||
|
|
@ -1150,14 +1211,14 @@ cat >expect <<\EOF
|
|||
|
|
||||
| diff --git a/ichi b/ichi
|
||||
| new file mode 100644
|
||||
| index 0000000..9d7e69f
|
||||
| index BEFORE..AFTER
|
||||
| --- /dev/null
|
||||
| +++ b/ichi
|
||||
| @@ -0,0 +1 @@
|
||||
| +ichi
|
||||
| diff --git a/one b/one
|
||||
| deleted file mode 100644
|
||||
| index 9d7e69f..0000000
|
||||
| index BEFORE..AFTER
|
||||
| --- a/one
|
||||
| +++ /dev/null
|
||||
| @@ -1 +0,0 @@
|
||||
|
|
@ -1172,7 +1233,7 @@ cat >expect <<\EOF
|
|||
| 1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
|
||||
| diff --git a/one b/one
|
||||
| index 5626abf..9d7e69f 100644
|
||||
| index BEFORE..AFTER 100644
|
||||
| --- a/one
|
||||
| +++ b/one
|
||||
| @@ -1 +1 @@
|
||||
|
|
@ -1189,30 +1250,15 @@ cat >expect <<\EOF
|
|||
|
||||
diff --git a/one b/one
|
||||
new file mode 100644
|
||||
index 0000000..5626abf
|
||||
index BEFORE..AFTER
|
||||
--- /dev/null
|
||||
+++ b/one
|
||||
@@ -0,0 +1 @@
|
||||
+one
|
||||
EOF
|
||||
|
||||
sanitize_output () {
|
||||
sed -e 's/ *$//' \
|
||||
-e 's/commit [0-9a-f]*$/commit COMMIT_OBJECT_NAME/' \
|
||||
-e 's/Merge: [ 0-9a-f]*$/Merge: MERGE_PARENTS/' \
|
||||
-e 's/Merge tag.*/Merge HEADS DESCRIPTION/' \
|
||||
-e 's/Merge commit.*/Merge HEADS DESCRIPTION/' \
|
||||
-e 's/, 0 deletions(-)//' \
|
||||
-e 's/, 0 insertions(+)//' \
|
||||
-e 's/ 1 files changed, / 1 file changed, /' \
|
||||
-e 's/, 1 deletions(-)/, 1 deletion(-)/' \
|
||||
-e 's/, 1 insertions(+)/, 1 insertion(+)/'
|
||||
}
|
||||
|
||||
test_expect_success 'log --graph with diff and stats' '
|
||||
git log --no-renames --graph --pretty=short --stat -p >actual &&
|
||||
sanitize_output >actual.sanitized <actual &&
|
||||
test_i18ncmp expect actual.sanitized
|
||||
lib_test_cmp_short_graph --no-renames --stat -p
|
||||
'
|
||||
|
||||
cat >expect <<\EOF
|
||||
|
|
@ -1232,7 +1278,7 @@ cat >expect <<\EOF
|
|||
*** | |
|
||||
*** | | diff --git a/reach.t b/reach.t
|
||||
*** | | new file mode 100644
|
||||
*** | | index 0000000..10c9591
|
||||
*** | | index BEFORE..AFTER
|
||||
*** | | --- /dev/null
|
||||
*** | | +++ b/reach.t
|
||||
*** | | @@ -0,0 +1 @@
|
||||
|
|
@ -1255,7 +1301,7 @@ cat >expect <<\EOF
|
|||
*** | | |
|
||||
*** | | | diff --git a/octopus-b.t b/octopus-b.t
|
||||
*** | | | new file mode 100644
|
||||
*** | | | index 0000000..d5fcad0
|
||||
*** | | | index BEFORE..AFTER
|
||||
*** | | | --- /dev/null
|
||||
*** | | | +++ b/octopus-b.t
|
||||
*** | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1271,7 +1317,7 @@ cat >expect <<\EOF
|
|||
*** | |
|
||||
*** | | diff --git a/octopus-a.t b/octopus-a.t
|
||||
*** | | new file mode 100644
|
||||
*** | | index 0000000..11ee015
|
||||
*** | | index BEFORE..AFTER
|
||||
*** | | --- /dev/null
|
||||
*** | | +++ b/octopus-a.t
|
||||
*** | | @@ -0,0 +1 @@
|
||||
|
|
@ -1287,7 +1333,7 @@ cat >expect <<\EOF
|
|||
*** |
|
||||
*** | diff --git a/seventh.t b/seventh.t
|
||||
*** | new file mode 100644
|
||||
*** | index 0000000..9744ffc
|
||||
*** | index BEFORE..AFTER
|
||||
*** | --- /dev/null
|
||||
*** | +++ b/seventh.t
|
||||
*** | @@ -0,0 +1 @@
|
||||
|
|
@ -1321,7 +1367,7 @@ cat >expect <<\EOF
|
|||
*** | | | |
|
||||
*** | | | | diff --git a/tangle-a b/tangle-a
|
||||
*** | | | | new file mode 100644
|
||||
*** | | | | index 0000000..7898192
|
||||
*** | | | | index BEFORE..AFTER
|
||||
*** | | | | --- /dev/null
|
||||
*** | | | | +++ b/tangle-a
|
||||
*** | | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1343,7 +1389,7 @@ cat >expect <<\EOF
|
|||
*** | | | |
|
||||
*** | | | | diff --git a/2 b/2
|
||||
*** | | | | new file mode 100644
|
||||
*** | | | | index 0000000..0cfbf08
|
||||
*** | | | | index BEFORE..AFTER
|
||||
*** | | | | --- /dev/null
|
||||
*** | | | | +++ b/2
|
||||
*** | | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1359,7 +1405,7 @@ cat >expect <<\EOF
|
|||
*** | | | |
|
||||
*** | | | | diff --git a/1 b/1
|
||||
*** | | | | new file mode 100644
|
||||
*** | | | | index 0000000..d00491f
|
||||
*** | | | | index BEFORE..AFTER
|
||||
*** | | | | --- /dev/null
|
||||
*** | | | | +++ b/1
|
||||
*** | | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1375,7 +1421,7 @@ cat >expect <<\EOF
|
|||
*** | | | |
|
||||
*** | | | | diff --git a/one b/one
|
||||
*** | | | | new file mode 100644
|
||||
*** | | | | index 0000000..9a33383
|
||||
*** | | | | index BEFORE..AFTER
|
||||
*** | | | | --- /dev/null
|
||||
*** | | | | +++ b/one
|
||||
*** | | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1391,7 +1437,7 @@ cat >expect <<\EOF
|
|||
*** | | |
|
||||
*** | | | diff --git a/a/two b/a/two
|
||||
*** | | | deleted file mode 100644
|
||||
*** | | | index 9245af5..0000000
|
||||
*** | | | index BEFORE..AFTER
|
||||
*** | | | --- a/a/two
|
||||
*** | | | +++ /dev/null
|
||||
*** | | | @@ -1 +0,0 @@
|
||||
|
|
@ -1407,7 +1453,7 @@ cat >expect <<\EOF
|
|||
*** | | |
|
||||
*** | | | diff --git a/a/two b/a/two
|
||||
*** | | | new file mode 100644
|
||||
*** | | | index 0000000..9245af5
|
||||
*** | | | index BEFORE..AFTER
|
||||
*** | | | --- /dev/null
|
||||
*** | | | +++ b/a/two
|
||||
*** | | | @@ -0,0 +1 @@
|
||||
|
|
@ -1423,7 +1469,7 @@ cat >expect <<\EOF
|
|||
*** | |
|
||||
*** | | diff --git a/ein b/ein
|
||||
*** | | new file mode 100644
|
||||
*** | | index 0000000..9d7e69f
|
||||
*** | | index BEFORE..AFTER
|
||||
*** | | --- /dev/null
|
||||
*** | | +++ b/ein
|
||||
*** | | @@ -0,0 +1 @@
|
||||
|
|
@ -1440,14 +1486,14 @@ cat >expect <<\EOF
|
|||
*** |
|
||||
*** | diff --git a/ichi b/ichi
|
||||
*** | new file mode 100644
|
||||
*** | index 0000000..9d7e69f
|
||||
*** | index BEFORE..AFTER
|
||||
*** | --- /dev/null
|
||||
*** | +++ b/ichi
|
||||
*** | @@ -0,0 +1 @@
|
||||
*** | +ichi
|
||||
*** | diff --git a/one b/one
|
||||
*** | deleted file mode 100644
|
||||
*** | index 9d7e69f..0000000
|
||||
*** | index BEFORE..AFTER
|
||||
*** | --- a/one
|
||||
*** | +++ /dev/null
|
||||
*** | @@ -1 +0,0 @@
|
||||
|
|
@ -1462,7 +1508,7 @@ cat >expect <<\EOF
|
|||
*** | 1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
*** |
|
||||
*** | diff --git a/one b/one
|
||||
*** | index 5626abf..9d7e69f 100644
|
||||
*** | index BEFORE..AFTER 100644
|
||||
*** | --- a/one
|
||||
*** | +++ b/one
|
||||
*** | @@ -1 +1 @@
|
||||
|
|
@ -1479,7 +1525,7 @@ cat >expect <<\EOF
|
|||
***
|
||||
*** diff --git a/one b/one
|
||||
*** new file mode 100644
|
||||
*** index 0000000..5626abf
|
||||
*** index BEFORE..AFTER
|
||||
*** --- /dev/null
|
||||
*** +++ b/one
|
||||
*** @@ -0,0 +1 @@
|
||||
|
|
@ -1487,9 +1533,7 @@ cat >expect <<\EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'log --line-prefix="*** " --graph with diff and stats' '
|
||||
git log --line-prefix="*** " --no-renames --graph --pretty=short --stat -p >actual &&
|
||||
sanitize_output >actual.sanitized <actual &&
|
||||
test_i18ncmp expect actual.sanitized
|
||||
lib_test_cmp_short_graph --line-prefix="*** " --no-renames --stat -p
|
||||
'
|
||||
|
||||
cat >expect <<-\EOF
|
||||
|
|
@ -1511,9 +1555,7 @@ cat >expect <<-\EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'log --graph with --name-status' '
|
||||
git log --graph --format=%s --name-status tangle..reach >actual &&
|
||||
sanitize_output <actual >actual.sanitized &&
|
||||
test_cmp expect actual.sanitized
|
||||
test_cmp_graph --name-status tangle..reach
|
||||
'
|
||||
|
||||
cat >expect <<-\EOF
|
||||
|
|
@ -1535,9 +1577,7 @@ cat >expect <<-\EOF
|
|||
EOF
|
||||
|
||||
test_expect_success 'log --graph with --name-only' '
|
||||
git log --graph --format=%s --name-only tangle..reach >actual &&
|
||||
sanitize_output <actual >actual.sanitized &&
|
||||
test_cmp expect actual.sanitized
|
||||
test_cmp_graph --name-only tangle..reach
|
||||
'
|
||||
|
||||
test_expect_success 'dotdot is a parent directory' '
|
||||
|
|
@ -1555,6 +1595,14 @@ test_expect_success GPG 'setup signed branch' '
|
|||
git commit -S -m signed_commit
|
||||
'
|
||||
|
||||
test_expect_success GPG 'setup signed branch with subkey' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b signed-subkey master &&
|
||||
echo foo >foo &&
|
||||
git add foo &&
|
||||
git commit -SB7227189 -m signed_commit
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'setup signed branch x509' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b signed-x509 master &&
|
||||
|
|
@ -1565,6 +1613,18 @@ test_expect_success GPGSM 'setup signed branch x509' '
|
|||
git commit -S -m signed_commit
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log x509 fingerprint' '
|
||||
echo "F8BF62E0693D0694816377099909C779FA23FD65 | " >expect &&
|
||||
git log -n1 --format="%GF | %GP" signed-x509 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log OpenPGP fingerprint' '
|
||||
echo "D4BE22311AD3131E5EDA29A461092E85B7227189" > expect &&
|
||||
git log -n1 --format="%GP" signed-subkey >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success GPG 'log --graph --show-signature' '
|
||||
git log --graph --show-signature -n1 signed >actual &&
|
||||
grep "^| gpg: Signature made" actual &&
|
||||
|
|
@ -1596,6 +1656,86 @@ test_expect_success GPG 'log --graph --show-signature for merged tag' '
|
|||
grep "^| | gpg: Good signature" actual
|
||||
'
|
||||
|
||||
test_expect_success GPG 'log --graph --show-signature for merged tag in shallow clone' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b plain-shallow master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout --detach master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_shallow &&
|
||||
hash=$(git rev-parse HEAD) &&
|
||||
git checkout plain-shallow &&
|
||||
git merge --no-ff -m msg signed_tag_shallow &&
|
||||
git clone --depth 1 --no-local . shallow &&
|
||||
test_when_finished "rm -rf shallow" &&
|
||||
git -C shallow log --graph --show-signature -n1 plain-shallow >actual &&
|
||||
grep "tag signed_tag_shallow names a non-parent $hash" actual
|
||||
'
|
||||
|
||||
test_expect_success GPG 'log --graph --show-signature for merged tag with missing key' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b plain-nokey master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout -b tagged-nokey master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_nokey &&
|
||||
git checkout plain-nokey &&
|
||||
git merge --no-ff -m msg signed_tag_nokey &&
|
||||
GNUPGHOME=. git log --graph --show-signature -n1 plain-nokey >actual &&
|
||||
grep "^|\\\ merged tag" actual &&
|
||||
grep "^| | gpg: Signature made" actual &&
|
||||
grep -E "^| | gpg: Can'"'"'t check signature: (public key not found|No public key)" actual
|
||||
'
|
||||
|
||||
test_expect_success GPG 'log --graph --show-signature for merged tag with bad signature' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b plain-bad master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout -b tagged-bad master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_bad &&
|
||||
git cat-file tag signed_tag_bad >raw &&
|
||||
sed -e "s/signed_tag_msg/forged/" raw >forged &&
|
||||
git hash-object -w -t tag forged >forged.tag &&
|
||||
git checkout plain-bad &&
|
||||
git merge --no-ff -m msg "$(cat forged.tag)" &&
|
||||
git log --graph --show-signature -n1 plain-bad >actual &&
|
||||
grep "^|\\\ merged tag" actual &&
|
||||
grep "^| | gpg: Signature made" actual &&
|
||||
grep "^| | gpg: BAD signature from" actual
|
||||
'
|
||||
|
||||
test_expect_success GPG 'log --show-signature for merged tag with GPG failure' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
git checkout -b plain-fail master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout -b tagged-fail master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_fail &&
|
||||
git checkout plain-fail &&
|
||||
git merge --no-ff -m msg signed_tag_fail &&
|
||||
TMPDIR="$(pwd)/bogus" git log --show-signature -n1 plain-fail >actual &&
|
||||
grep "^merged tag" actual &&
|
||||
grep "^No signature" actual &&
|
||||
! grep "^gpg: Signature made" actual
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log --graph --show-signature for merged tag x509' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
test_config gpg.format x509 &&
|
||||
|
|
@ -1617,6 +1757,51 @@ test_expect_success GPGSM 'log --graph --show-signature for merged tag x509' '
|
|||
grep "^| | gpgsm: Good signature" actual
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 missing key' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
test_config gpg.format x509 &&
|
||||
test_config user.signingkey $GIT_COMMITTER_EMAIL &&
|
||||
git checkout -b plain-x509-nokey master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout -b tagged-x509-nokey master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_x509_nokey &&
|
||||
git checkout plain-x509-nokey &&
|
||||
git merge --no-ff -m msg signed_tag_x509_nokey &&
|
||||
GNUPGHOME=. git log --graph --show-signature -n1 plain-x509-nokey >actual &&
|
||||
grep "^|\\\ merged tag" actual &&
|
||||
grep "^| | gpgsm: certificate not found" actual
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 bad signature' '
|
||||
test_when_finished "git reset --hard && git checkout master" &&
|
||||
test_config gpg.format x509 &&
|
||||
test_config user.signingkey $GIT_COMMITTER_EMAIL &&
|
||||
git checkout -b plain-x509-bad master &&
|
||||
echo aaa >bar &&
|
||||
git add bar &&
|
||||
git commit -m bar_commit &&
|
||||
git checkout -b tagged-x509-bad master &&
|
||||
echo bbb >baz &&
|
||||
git add baz &&
|
||||
git commit -m baz_commit &&
|
||||
git tag -s -m signed_tag_msg signed_tag_x509_bad &&
|
||||
git cat-file tag signed_tag_x509_bad >raw &&
|
||||
sed -e "s/signed_tag_msg/forged/" raw >forged &&
|
||||
git hash-object -w -t tag forged >forged.tag &&
|
||||
git checkout plain-x509-bad &&
|
||||
git merge --no-ff -m msg "$(cat forged.tag)" &&
|
||||
git log --graph --show-signature -n1 plain-x509-bad >actual &&
|
||||
grep "^|\\\ merged tag" actual &&
|
||||
grep "^| | gpgsm: Signature made" actual &&
|
||||
grep "^| | gpgsm: invalid signature" actual
|
||||
'
|
||||
|
||||
|
||||
test_expect_success GPG '--no-show-signature overrides --show-signature' '
|
||||
git log -1 --show-signature --no-show-signature signed >actual &&
|
||||
! grep "^gpg:" actual
|
||||
|
|
@ -1665,6 +1850,16 @@ test_expect_success 'log does not default to HEAD when rev input is given' '
|
|||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'do not default to HEAD with ignored object on cmdline' '
|
||||
git log --ignore-missing $ZERO_OID >actual &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'do not default to HEAD with ignored object on stdin' '
|
||||
echo $ZERO_OID | git log --ignore-missing --stdin >actual &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'set up --source tests' '
|
||||
git checkout --orphan source-a &&
|
||||
test_commit one &&
|
||||
|
|
@ -1674,10 +1869,10 @@ test_expect_success 'set up --source tests' '
|
|||
'
|
||||
|
||||
test_expect_success 'log --source paints branch names' '
|
||||
cat >expect <<-\EOF &&
|
||||
09e12a9 source-b three
|
||||
8e393e1 source-a two
|
||||
1ac6c77 source-b one
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse --short :/three) source-b three
|
||||
$(git rev-parse --short :/two ) source-a two
|
||||
$(git rev-parse --short :/one ) source-b one
|
||||
EOF
|
||||
git log --oneline --source source-a source-b >actual &&
|
||||
test_cmp expect actual
|
||||
|
|
@ -1685,19 +1880,19 @@ test_expect_success 'log --source paints branch names' '
|
|||
|
||||
test_expect_success 'log --source paints tag names' '
|
||||
git tag -m tagged source-tag &&
|
||||
cat >expect <<-\EOF &&
|
||||
09e12a9 source-tag three
|
||||
8e393e1 source-a two
|
||||
1ac6c77 source-tag one
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse --short :/three) source-tag three
|
||||
$(git rev-parse --short :/two ) source-a two
|
||||
$(git rev-parse --short :/one ) source-tag one
|
||||
EOF
|
||||
git log --oneline --source source-tag source-a >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'log --source paints symmetric ranges' '
|
||||
cat >expect <<-\EOF &&
|
||||
09e12a9 source-b three
|
||||
8e393e1 source-a two
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse --short :/three) source-b three
|
||||
$(git rev-parse --short :/two ) source-a two
|
||||
EOF
|
||||
git log --oneline --source source-a...source-b >actual &&
|
||||
test_cmp expect actual
|
||||
|
|
@ -1707,4 +1902,11 @@ test_expect_success '--exclude-promisor-objects does not BUG-crash' '
|
|||
test_must_fail git log --exclude-promisor-objects source-a
|
||||
'
|
||||
|
||||
test_expect_success 'log --end-of-options' '
|
||||
git update-ref refs/heads/--source HEAD &&
|
||||
git log --end-of-options --source >actual &&
|
||||
git log >expect &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue