Merge branch 'bc/hash-independent-tests-part-5'

Preparation for SHA-256 upgrade continues in the test department.

* bc/hash-independent-tests-part-5:
  t4009: make hash size independent
  t4002: make hash independent
  t4000: make hash size independent
  t3903: abstract away SHA-1-specific constants
  t3800: make hash-size independent
  t3600: make hash size independent
  t3506: make hash independent
  t3430: avoid hard-coded object IDs
  t3404: abstract away SHA-1-specific constants
  t3306: abstract away SHA-1-specific constants
  t3305: make hash size independent
  t3301: abstract away SHA-1-specific constants
  t3206: abstract away hash size constants
  t3201: abstract away SHA-1-specific constants
This commit is contained in:
Junio C Hamano 2019-09-30 13:19:23 +09:00
commit 0281733483
14 changed files with 640 additions and 328 deletions

View file

@ -192,10 +192,10 @@ test_expect_success 'branch --merged with --verbose' '
EOF
test_cmp expect actual &&
git branch --verbose --merged topic >actual &&
cat >expect <<-\EOF &&
master c77a0a9 second on master
* topic 2c939f4 [ahead 1] foo
zzz c77a0a9 second on master
cat >expect <<-EOF &&
master $(git rev-parse --short master) second on master
* topic $(git rev-parse --short topic ) [ahead 1] foo
zzz $(git rev-parse --short zzz ) second on master
EOF
test_i18ncmp expect actual
'

View file

@ -8,17 +8,124 @@ test_description='range-diff tests'
# harm than good. We need some real history.
test_expect_success 'setup' '
git fast-import < "$TEST_DIRECTORY"/t3206/history.export
git fast-import < "$TEST_DIRECTORY"/t3206/history.export &&
test_oid_cache <<-EOF
# topic
t1 sha1:4de457d
t2 sha1:fccce22
t3 sha1:147e64e
t4 sha1:a63e992
t1 sha256:b89f8b9
t2 sha256:5f12aad
t3 sha256:ea8b273
t4 sha256:14b7336
# unmodified
u1 sha1:35b9b25
u2 sha1:de345ab
u3 sha1:9af6654
u4 sha1:2901f77
u1 sha256:e3731be
u2 sha256:14fadf8
u3 sha256:736c4bc
u4 sha256:673e77d
# reordered
r1 sha1:aca177a
r2 sha1:14ad629
r3 sha1:ee58208
r4 sha1:307b27a
r1 sha256:f59d3aa
r2 sha256:fb261a8
r3 sha256:cb2649b
r4 sha256:958577e
# removed (deleted)
d1 sha1:7657159
d2 sha1:43d84d3
d3 sha1:a740396
d1 sha256:e312513
d2 sha256:eb19258
d3 sha256:1ccb3c1
# added
a1 sha1:2716022
a2 sha1:b62accd
a3 sha1:df46cfa
a4 sha1:3e64548
a5 sha1:12b4063
a1 sha256:d724f4d
a2 sha256:1de7762
a3 sha256:e159431
a4 sha256:b3e483c
a5 sha256:90866a7
# rebased
b1 sha1:cc9c443
b2 sha1:c5d9641
b3 sha1:28cc2b6
b4 sha1:5628ab7
b5 sha1:a31b12e
b1 sha256:a1a8717
b2 sha256:20a5862
b3 sha256:587172a
b4 sha256:2721c5d
b5 sha256:7b57864
# changed
c1 sha1:a4b3333
c2 sha1:f51d370
c3 sha1:0559556
c4 sha1:d966c5c
c1 sha256:f8c2b9d
c2 sha256:3fb6318
c3 sha256:168ab68
c4 sha256:3526539
# changed-message
m1 sha1:f686024
m2 sha1:4ab067d
m3 sha1:b9cb956
m4 sha1:8add5f1
m1 sha256:31e6281
m2 sha256:a06bf1b
m3 sha256:82dc654
m4 sha256:48470c5
# renamed
n1 sha1:f258d75
n2 sha1:017b62d
n3 sha1:3ce7af6
n4 sha1:1e6226b
n1 sha256:ad52114
n2 sha256:3b54c8f
n3 sha256:3b0a644
n4 sha256:e461653
# added and removed
s1 sha1:096b1ba
s2 sha1:d92e698
s3 sha1:9a1db4d
s4 sha1:fea3b5c
s1 sha256:a7f9134
s2 sha256:b4c2580
s3 sha256:1d62aa2
s4 sha256:48160e8
# Empty delimiter (included so lines match neatly)
__ sha1:-------
__ sha256:-------
EOF
'
test_expect_success 'simple A..B A..C (unmodified)' '
git range-diff --no-color master..topic master..unmodified \
>actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid u4) s/12/B/
EOF
test_cmp expected actual
'
@ -38,10 +145,10 @@ test_expect_success 'simple A B C (unmodified)' '
test_expect_success 'trivial reordering' '
git range-diff --no-color master topic reordered >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: aca177a s/5/A/
3: 147e64e = 2: 14ad629 s/11/B/
4: a63e992 = 3: ee58208 s/12/B/
2: fccce22 = 4: 307b27a s/4/A/
1: $(test_oid t1) = 1: $(test_oid r1) s/5/A/
3: $(test_oid t3) = 2: $(test_oid r2) s/11/B/
4: $(test_oid t4) = 3: $(test_oid r3) s/12/B/
2: $(test_oid t2) = 4: $(test_oid r4) s/4/A/
EOF
test_cmp expected actual
'
@ -49,10 +156,10 @@ test_expect_success 'trivial reordering' '
test_expect_success 'removed a commit' '
git range-diff --no-color master topic removed >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: 7657159 s/5/A/
2: fccce22 < -: ------- s/4/A/
3: 147e64e = 2: 43d84d3 s/11/B/
4: a63e992 = 3: a740396 s/12/B/
1: $(test_oid t1) = 1: $(test_oid d1) s/5/A/
2: $(test_oid t2) < -: $(test_oid __) s/4/A/
3: $(test_oid t3) = 2: $(test_oid d2) s/11/B/
4: $(test_oid t4) = 3: $(test_oid d3) s/12/B/
EOF
test_cmp expected actual
'
@ -60,11 +167,11 @@ test_expect_success 'removed a commit' '
test_expect_success 'added a commit' '
git range-diff --no-color master topic added >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: 2716022 s/5/A/
2: fccce22 = 2: b62accd s/4/A/
-: ------- > 3: df46cfa s/6/A/
3: 147e64e = 4: 3e64548 s/11/B/
4: a63e992 = 5: 12b4063 s/12/B/
1: $(test_oid t1) = 1: $(test_oid a1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid a2) s/4/A/
-: $(test_oid __) > 3: $(test_oid a3) s/6/A/
3: $(test_oid t3) = 4: $(test_oid a4) s/11/B/
4: $(test_oid t4) = 5: $(test_oid a5) s/12/B/
EOF
test_cmp expected actual
'
@ -72,10 +179,10 @@ test_expect_success 'added a commit' '
test_expect_success 'new base, A B C' '
git range-diff --no-color master topic rebased >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: cc9c443 s/5/A/
2: fccce22 = 2: c5d9641 s/4/A/
3: 147e64e = 3: 28cc2b6 s/11/B/
4: a63e992 = 4: 5628ab7 s/12/B/
1: $(test_oid t1) = 1: $(test_oid b1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid b2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid b3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid b4) s/12/B/
EOF
test_cmp expected actual
'
@ -84,11 +191,11 @@ test_expect_success 'new base, B...C' '
# this syntax includes the commits from master!
git range-diff --no-color topic...rebased >actual &&
cat >expected <<-EOF &&
-: ------- > 1: a31b12e unrelated
1: 4de457d = 2: cc9c443 s/5/A/
2: fccce22 = 3: c5d9641 s/4/A/
3: 147e64e = 4: 28cc2b6 s/11/B/
4: a63e992 = 5: 5628ab7 s/12/B/
-: $(test_oid __) > 1: $(test_oid b5) unrelated
1: $(test_oid t1) = 2: $(test_oid b1) s/5/A/
2: $(test_oid t2) = 3: $(test_oid b2) s/4/A/
3: $(test_oid t3) = 4: $(test_oid b3) s/11/B/
4: $(test_oid t4) = 5: $(test_oid b4) s/12/B/
EOF
test_cmp expected actual
'
@ -96,9 +203,9 @@ test_expect_success 'new base, B...C' '
test_expect_success 'changed commit' '
git range-diff --no-color topic...changed >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: a4b3333 s/5/A/
2: fccce22 = 2: f51d370 s/4/A/
3: 147e64e ! 3: 0559556 s/11/B/
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
@ -108,7 +215,7 @@ test_expect_success 'changed commit' '
12
13
14
4: a63e992 ! 4: d966c5c s/12/B/
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
@ -125,10 +232,10 @@ test_expect_success 'changed commit' '
test_expect_success 'changed commit with --no-patch diff option' '
git range-diff --no-color --no-patch topic...changed >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: a4b3333 s/5/A/
2: fccce22 = 2: f51d370 s/4/A/
3: 147e64e ! 3: 0559556 s/11/B/
4: a63e992 ! 4: d966c5c s/12/B/
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
EOF
test_cmp expected actual
'
@ -136,16 +243,16 @@ test_expect_success 'changed commit with --no-patch diff option' '
test_expect_success 'changed commit with --stat diff option' '
git range-diff --no-color --stat topic...changed >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: a4b3333 s/5/A/
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
2: fccce22 = 2: f51d370 s/4/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
3: 147e64e ! 3: 0559556 s/11/B/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
4: a63e992 ! 4: d966c5c s/12/B/
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
EOF
@ -155,9 +262,9 @@ test_expect_success 'changed commit with --stat diff option' '
test_expect_success 'changed commit with sm config' '
git range-diff --no-color --submodule=log topic...changed >actual &&
cat >expected <<-EOF &&
1: 4de457d = 1: a4b3333 s/5/A/
2: fccce22 = 2: f51d370 s/4/A/
3: 147e64e ! 3: 0559556 s/11/B/
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
@ -167,7 +274,7 @@ test_expect_success 'changed commit with sm config' '
12
13
14
4: a63e992 ! 4: d966c5c s/12/B/
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
@ -184,8 +291,8 @@ test_expect_success 'changed commit with sm config' '
test_expect_success 'renamed file' '
git range-diff --no-color --submodule=log topic...renamed-file >actual &&
sed s/Z/\ /g >expected <<-EOF &&
1: 4de457d = 1: f258d75 s/5/A/
2: fccce22 ! 2: 017b62d s/4/A/
1: $(test_oid t1) = 1: $(test_oid n1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid n2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@ -198,7 +305,7 @@ test_expect_success 'renamed file' '
Z@@
Z 1
Z 2
3: 147e64e ! 3: 3ce7af6 s/11/B/
3: $(test_oid t3) ! 3: $(test_oid n3) s/11/B/
@@ Metadata
Z ## Commit message ##
Z s/11/B/
@ -210,7 +317,7 @@ test_expect_success 'renamed file' '
Z 8
Z 9
Z 10
4: a63e992 ! 4: 1e6226b s/12/B/
4: $(test_oid t4) ! 4: $(test_oid n4) s/12/B/
@@ Metadata
Z ## Commit message ##
Z s/12/B/
@ -229,8 +336,8 @@ test_expect_success 'renamed file' '
test_expect_success 'file added and later removed' '
git range-diff --no-color --submodule=log topic...added-removed >actual &&
sed s/Z/\ /g >expected <<-EOF &&
1: 4de457d = 1: 096b1ba s/5/A/
2: fccce22 ! 2: d92e698 s/4/A/
1: $(test_oid t1) = 1: $(test_oid s1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid s2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@ -246,7 +353,7 @@ test_expect_success 'file added and later removed' '
Z 7
+
+ ## new-file (new) ##
3: 147e64e ! 3: 9a1db4d s/11/B/
3: $(test_oid t3) ! 3: $(test_oid s3) s/11/B/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@ -262,7 +369,7 @@ test_expect_success 'file added and later removed' '
Z 14
+
+ ## new-file (deleted) ##
4: a63e992 = 4: fea3b5c s/12/B/
4: $(test_oid t4) = 4: $(test_oid s4) s/12/B/
EOF
test_cmp expected actual
'
@ -275,8 +382,8 @@ test_expect_success 'no commits on one side' '
test_expect_success 'changed message' '
git range-diff --no-color topic...changed-message >actual &&
sed s/Z/\ /g >expected <<-EOF &&
1: 4de457d = 1: f686024 s/5/A/
2: fccce22 ! 2: 4ab067d s/4/A/
1: $(test_oid t1) = 1: $(test_oid m1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid m2) s/4/A/
@@ Metadata
Z ## Commit message ##
Z s/4/A/
@ -286,16 +393,16 @@ test_expect_success 'changed message' '
Z ## file ##
Z@@
Z 1
3: 147e64e = 3: b9cb956 s/11/B/
4: a63e992 = 4: 8add5f1 s/12/B/
3: $(test_oid t3) = 3: $(test_oid m3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid m4) s/12/B/
EOF
test_cmp expected actual
'
test_expect_success 'dual-coloring' '
sed -e "s|^:||" >expect <<-\EOF &&
:<YELLOW>1: a4b3333 = 1: f686024 s/5/A/<RESET>
:<RED>2: f51d370 <RESET><YELLOW>!<RESET><GREEN> 2: 4ab067d<RESET><YELLOW> s/4/A/<RESET>
sed -e "s|^:||" >expect <<-EOF &&
:<YELLOW>1: $(test_oid c1) = 1: $(test_oid m1) s/5/A/<RESET>
:<RED>2: $(test_oid c2) <RESET><YELLOW>!<RESET><GREEN> 2: $(test_oid m2)<RESET><YELLOW> s/4/A/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>Metadata<RESET>
: ## Commit message ##<RESET>
: s/4/A/<RESET>
@ -305,7 +412,7 @@ test_expect_success 'dual-coloring' '
: ## file ##<RESET>
: <CYAN> @@<RESET>
: 1<RESET>
:<RED>3: 0559556 <RESET><YELLOW>!<RESET><GREEN> 3: b9cb956<RESET><YELLOW> s/11/B/<RESET>
:<RED>3: $(test_oid c3) <RESET><YELLOW>!<RESET><GREEN> 3: $(test_oid m3)<RESET><YELLOW> s/11/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file: A<RESET>
: 9<RESET>
: 10<RESET>
@ -315,7 +422,7 @@ test_expect_success 'dual-coloring' '
: 12<RESET>
: 13<RESET>
: 14<RESET>
:<RED>4: d966c5c <RESET><YELLOW>!<RESET><GREEN> 4: 8add5f1<RESET><YELLOW> s/12/B/<RESET>
:<RED>4: $(test_oid c4) <RESET><YELLOW>!<RESET><GREEN> 4: $(test_oid m4)<RESET><YELLOW> s/12/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file<RESET>
: <CYAN> @@ file: A<RESET>
: 9<RESET>

View file

@ -66,8 +66,9 @@ test_expect_success 'show notes entry with %N' '
'
test_expect_success 'create reflog entry' '
ref=$(git rev-parse --short refs/notes/commits) &&
cat <<-EOF >expect &&
a1d8fa6 refs/notes/commits@{0}: notes: Notes added by '\''git notes add'\''
$ref refs/notes/commits@{0}: notes: Notes added by '\''git notes add'\''
EOF
git reflog show refs/notes/commits >actual &&
test_cmp expect actual
@ -134,8 +135,9 @@ test_expect_success 'can overwrite existing note with "git notes add -f"' '
'
test_expect_success 'show notes' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 7a4ca6ee52a974a66cbaa78e33214535dff1d691
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
@ -152,8 +154,9 @@ test_expect_success 'show notes' '
test_expect_success 'show multi-line notes' '
test_commit 3rd &&
MSG="b3${LF}c3c3c3c3${LF}d3d3d3" git notes add &&
commit=$(git rev-parse HEAD) &&
cat >expect-multiline <<-EOF &&
commit d07d62e5208f22eb5695e7eb47667dc8b9860290
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
@ -174,8 +177,9 @@ test_expect_success 'show -F notes' '
test_commit 4th &&
echo "xyzzy" >note5 &&
git notes add -F note5 &&
commit=$(git rev-parse HEAD) &&
cat >expect-F <<-EOF &&
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
@ -198,10 +202,13 @@ test_expect_success 'Re-adding -F notes without -f fails' '
'
test_expect_success 'git log --pretty=raw does not show notes' '
commit=$(git rev-parse HEAD) &&
tree=$(git rev-parse HEAD^{tree}) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
tree 05ac65288c4c4b3b709a020ae94b2ece2f2201ae
parent d07d62e5208f22eb5695e7eb47667dc8b9860290
commit $commit
tree $tree
parent $parent
author A U Thor <author@example.com> 1112912173 -0700
committer C O Mitter <committer@example.com> 1112912173 -0700
@ -291,8 +298,9 @@ test_expect_success 'git log --no-notes resets ref list' '
test_expect_success 'show -m notes' '
test_commit 5th &&
git notes add -m spam -m "foo${LF}bar${LF}baz" &&
commit=$(git rev-parse HEAD) &&
cat >expect-m <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@ -313,8 +321,9 @@ test_expect_success 'show -m notes' '
test_expect_success 'remove note with add -f -F /dev/null' '
git notes add -f -F /dev/null &&
commit=$(git rev-parse HEAD) &&
cat >expect-rm-F <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@ -356,14 +365,16 @@ test_expect_success 'create note with combination of -m and -F' '
test_expect_success 'remove note with "git notes remove"' '
git notes remove HEAD^ &&
git notes remove &&
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-rm-remove <<-EOF &&
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
@ -459,9 +470,11 @@ test_expect_success 'removing with --stdin --ignore-missing' '
'
test_expect_success 'list notes with "git notes list"' '
cat >expect <<-EOF &&
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
commit_2=$(git rev-parse 2nd) &&
commit_3=$(git rev-parse 3rd) &&
sort -t" " -k2 >expect <<-EOF &&
$(git rev-parse refs/notes/commits:$commit_2) $commit_2
$(git rev-parse refs/notes/commits:$commit_3) $commit_3
EOF
git notes list >actual &&
test_cmp expect actual
@ -474,7 +487,7 @@ test_expect_success 'list notes with "git notes"' '
test_expect_success 'list specific note with "git notes list <object>"' '
cat >expect <<-EOF &&
c18dc024e14f08d18d14eea0d747ff692d66d6a3
$(git rev-parse refs/notes/commits:$commit_3)
EOF
git notes list HEAD^^ >actual &&
test_cmp expect actual
@ -498,10 +511,11 @@ test_expect_success 'append to existing note with "git notes append"' '
'
test_expect_success '"git notes list" does not expand to "git notes list HEAD"' '
cat >expect_list <<-EOF &&
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
4b6ad22357cc8a1296720574b8d2fbc22fab0671 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
commit_5=$(git rev-parse 5th) &&
sort -t" " -k2 >expect_list <<-EOF &&
$(git rev-parse refs/notes/commits:$commit_2) $commit_2
$(git rev-parse refs/notes/commits:$commit_3) $commit_3
$(git rev-parse refs/notes/commits:$commit_5) $commit_5
EOF
git notes list >actual &&
test_cmp expect_list actual
@ -531,8 +545,9 @@ test_expect_success 'appending empty string to non-existing note does not create
test_expect_success 'create other note on a different notes ref (setup)' '
test_commit 6th &&
GIT_NOTES_REF="refs/notes/other" git notes add -m "other note" &&
commit=$(git rev-parse HEAD) &&
cat >expect-not-other <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@ -569,8 +584,10 @@ test_expect_success 'Do not show note when core.notesRef is overridden' '
'
test_expect_success 'Show all notes when notes.displayRef=refs/notes/*' '
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-both <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@ -582,7 +599,7 @@ test_expect_success 'Show all notes when notes.displayRef=refs/notes/*' '
Notes (other):
${indent}other note
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@ -616,8 +633,9 @@ test_expect_success 'notes.displayRef can be given more than once' '
'
test_expect_success 'notes.displayRef respects order' '
commit=$(git rev-parse HEAD) &&
cat >expect-both-reversed <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@ -642,14 +660,16 @@ test_expect_success 'GIT_NOTES_DISPLAY_REF works' '
'
test_expect_success 'GIT_NOTES_DISPLAY_REF overrides config' '
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-none <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@ -666,8 +686,9 @@ test_expect_success '--show-notes=* adds to GIT_NOTES_DISPLAY_REF' '
'
test_expect_success '--no-standard-notes' '
commit=$(git rev-parse HEAD) &&
cat >expect-commits <<-EOF &&
commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@ -712,8 +733,10 @@ test_expect_success 'Allow notes on non-commits (trees, blobs, tags)' '
'
test_expect_success 'create note from other note with "git notes add -C"' '
test_commit 7th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit fb01e0ca8c33b6cc0c6451dde747f97df567cb5c
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
@ -722,7 +745,6 @@ test_expect_success 'create note from other note with "git notes add -C"' '
Notes:
${indent}order test
EOF
test_commit 7th &&
git notes add -C $(git notes list HEAD^) &&
git log -1 >actual &&
test_cmp expect actual &&
@ -744,8 +766,9 @@ test_expect_success 'create note from non-blob with "git notes add -C" fails' '
'
test_expect_success 'create note from blob with "git notes add -C" reuses blob id' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 9a4c31c7f722b5d517e92c64e932dd751e1413bf
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
@ -762,8 +785,10 @@ test_expect_success 'create note from blob with "git notes add -C" reuses blob i
'
test_expect_success 'create note from other note with "git notes add -c"' '
test_commit 9th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
@ -772,7 +797,6 @@ test_expect_success 'create note from other note with "git notes add -c"' '
Notes:
${indent}yet another note
EOF
test_commit 9th &&
MSG="yet another note" git notes add -c $(git notes list HEAD^^) &&
git log -1 >actual &&
test_cmp expect actual
@ -785,8 +809,9 @@ test_expect_success 'create note from non-existing note with "git notes add -c"
'
test_expect_success 'append to note from other note with "git notes append -C"' '
commit=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
@ -803,8 +828,9 @@ test_expect_success 'append to note from other note with "git notes append -C"'
'
test_expect_success 'create note from other note with "git notes append -c"' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
@ -819,8 +845,9 @@ test_expect_success 'create note from other note with "git notes append -c"' '
'
test_expect_success 'append to note from other note with "git notes append -c"' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
@ -837,8 +864,10 @@ test_expect_success 'append to note from other note with "git notes append -c"'
'
test_expect_success 'copy note with "git notes copy"' '
test_commit 11th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
@ -849,7 +878,6 @@ test_expect_success 'copy note with "git notes copy"' '
${indent}
${indent}yet another note
EOF
test_commit 11th &&
git notes copy HEAD^ HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
@ -864,8 +892,9 @@ test_expect_success 'prevent overwrite with "git notes copy"' '
'
test_expect_success 'allow overwrite with "git notes copy -f"' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
@ -889,8 +918,10 @@ test_expect_success 'cannot copy note from object without notes' '
'
test_expect_success 'git notes copy --stdin' '
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit e871aa61182b1d95d0a6fb75445d891722863b6b
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:25:13 2005 -0700
@ -901,7 +932,7 @@ test_expect_success 'git notes copy --stdin' '
${indent}
${indent}yet another note
commit 65e263ded02ae4e8839bc151095113737579dc12
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:24:13 2005 -0700
@ -922,21 +953,23 @@ test_expect_success 'git notes copy --stdin' '
'
test_expect_success 'git notes copy --for-rewrite (unconfigured)' '
test_commit 14th &&
test_commit 15th &&
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
commit 07c85d77059393ed0154b8c96906547a59dfcddd
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
${indent}14th
EOF
test_commit 14th &&
test_commit 15th &&
(echo $(git rev-parse HEAD~3) $(git rev-parse HEAD^) &&
echo $(git rev-parse HEAD~2) $(git rev-parse HEAD)) |
git notes copy --for-rewrite=foo &&
@ -945,8 +978,10 @@ test_expect_success 'git notes copy --for-rewrite (unconfigured)' '
'
test_expect_success 'git notes copy --for-rewrite (enabled)' '
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@ -957,7 +992,7 @@ test_expect_success 'git notes copy --for-rewrite (enabled)' '
${indent}
${indent}yet another note
commit 07c85d77059393ed0154b8c96906547a59dfcddd
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
@ -986,8 +1021,9 @@ test_expect_success 'git notes copy --for-rewrite (disabled)' '
'
test_expect_success 'git notes copy --for-rewrite (overwrite)' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@ -1015,8 +1051,9 @@ test_expect_success 'git notes copy --for-rewrite (ignore)' '
'
test_expect_success 'git notes copy --for-rewrite (append)' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@ -1037,8 +1074,9 @@ test_expect_success 'git notes copy --for-rewrite (append)' '
'
test_expect_success 'git notes copy --for-rewrite (append two to one)' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@ -1075,8 +1113,9 @@ test_expect_success 'git notes copy --for-rewrite (append empty)' '
'
test_expect_success 'GIT_NOTES_REWRITE_MODE works' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@ -1095,8 +1134,9 @@ test_expect_success 'GIT_NOTES_REWRITE_MODE works' '
'
test_expect_success 'GIT_NOTES_REWRITE_REF works' '
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700

View file

@ -35,15 +35,10 @@ test_expect_success 'many notes created with git-notes triggers fanout' '
git ls-tree -r --name-only refs/notes/commits |
while read path
do
case "$path" in
??/??????????????????????????????????????)
: true
;;
*)
echo $path | grep "^../[0-9a-f]*$" || {
echo "Invalid path \"$path\"" &&
return 1
;;
esac
return 1;
}
done
'
@ -77,15 +72,10 @@ test_expect_success 'deleting most notes triggers fanout consolidation' '
git ls-tree -r --name-only refs/notes/commits |
while read path
do
case "$path" in
????????????????????????????????????????)
: true
;;
*)
echo $path | grep -v "^../.*" || {
echo "Invalid path \"$path\"" &&
return 1
;;
esac
return 1;
}
done
'

View file

@ -11,23 +11,26 @@ test_expect_success 'setup: create a few commits with notes' '
test_tick &&
git commit -m 1st &&
git notes add -m "Note #1" &&
first=$(git rev-parse HEAD) &&
: > file2 &&
git add file2 &&
test_tick &&
git commit -m 2nd &&
git notes add -m "Note #2" &&
second=$(git rev-parse HEAD) &&
: > file3 &&
git add file3 &&
test_tick &&
git commit -m 3rd &&
COMMIT_FILE=.git/objects/5e/e1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
third=$(git rev-parse HEAD) &&
COMMIT_FILE=$(echo $third | sed "s!^..!.git/objects/&/!") &&
test -f $COMMIT_FILE &&
test-tool chmtime =+0 $COMMIT_FILE &&
git notes add -m "Note #3"
'
cat > expect <<END_OF_LOG
commit 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
commit $third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
@ -36,7 +39,7 @@ Date: Thu Apr 7 15:15:13 2005 -0700
Notes:
Note #3
commit 08341ad9e94faa089d60fd3f523affb25c6da189
commit $second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
@ -45,7 +48,7 @@ Date: Thu Apr 7 15:14:13 2005 -0700
Notes:
Note #2
commit ab5f302035f2e7aaf04265f08b42034c23256e1f
commit $first
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
@ -70,16 +73,16 @@ test_expect_success 'remove some commits' '
test_expect_success 'verify that commits are gone' '
test_must_fail git cat-file -p 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git cat-file -p 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git cat-file -p ab5f302035f2e7aaf04265f08b42034c23256e1f
test_must_fail git cat-file -p $third &&
git cat-file -p $second &&
git cat-file -p $first
'
test_expect_success 'verify that notes are still present' '
git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
git notes show $third &&
git notes show $second &&
git notes show $first
'
test_expect_success 'prune -n does not remove notes' '
@ -90,13 +93,10 @@ test_expect_success 'prune -n does not remove notes' '
test_cmp expect actual
'
cat > expect <<EOF
5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
EOF
test_expect_success 'prune -n lists prunable notes' '
echo $third >expect &&
git notes prune -n > actual &&
test_cmp expect actual
'
@ -109,9 +109,9 @@ test_expect_success 'prune notes' '
test_expect_success 'verify that notes are gone' '
test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
test_must_fail git notes show $third &&
git notes show $second &&
git notes show $first
'
test_expect_success 'remove some commits' '
@ -121,21 +121,18 @@ test_expect_success 'remove some commits' '
git gc --prune=now
'
cat > expect <<EOF
08341ad9e94faa089d60fd3f523affb25c6da189
EOF
test_expect_success 'prune -v notes' '
echo $second >expect &&
git notes prune -v > actual &&
test_cmp expect actual
'
test_expect_success 'verify that notes are gone' '
test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
test_must_fail git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
test_must_fail git notes show $third &&
test_must_fail git notes show $second &&
git notes show $first
'
test_done

View file

@ -29,9 +29,6 @@ Initial setup:
. "$TEST_DIRECTORY"/lib-rebase.sh
# WARNING: Modifications to the initial repository can change the SHA ID used
# in the expect2 file for the 'stop on conflicting pick' test.
test_expect_success 'setup' '
test_commit A file1 &&
test_commit B file1 &&
@ -231,25 +228,28 @@ test_expect_success 'exchange two commits' '
set_fake_editor &&
FAKE_LINES="2 1" git rebase -i HEAD~2 &&
test H = $(git cat-file commit HEAD^ | sed -ne \$p) &&
test G = $(git cat-file commit HEAD | sed -ne \$p)
test G = $(git cat-file commit HEAD | sed -ne \$p) &&
blob1=$(git rev-parse --short HEAD^:file1) &&
blob2=$(git rev-parse --short HEAD:file1) &&
commit=$(git rev-parse --short HEAD)
'
test_expect_success 'stop on conflicting pick' '
cat >expect <<-\EOF &&
cat >expect <<-EOF &&
diff --git a/file1 b/file1
index f70f10e..fd79235 100644
index $blob1..$blob2 100644
--- a/file1
+++ b/file1
@@ -1 +1 @@
-A
+G
EOF
cat >expect2 <<-\EOF &&
cat >expect2 <<-EOF &&
<<<<<<< HEAD
D
=======
G
>>>>>>> 5d18e54... G
>>>>>>> $commit... G
EOF
git tag new-branch1 &&
set_fake_editor &&
@ -1001,7 +1001,7 @@ test_expect_success 'rebase -i --root temporary sentinel commit' '
git checkout B &&
set_fake_editor &&
test_must_fail env FAKE_LINES="2" git rebase -i --root &&
git cat-file commit HEAD | grep "^tree 4b825dc642cb" &&
git cat-file commit HEAD | grep "^tree $EMPTY_TREE" &&
git rebase --abort
'
@ -1159,7 +1159,7 @@ test_expect_success 'rebase -i error on commits with \ in message' '
test_expect_code 1 grep " emp" error
'
test_expect_success 'short SHA-1 setup' '
test_expect_success SHA1 'short SHA-1 setup' '
test_when_finished "git checkout master" &&
git checkout --orphan collide &&
git rm -rf . &&
@ -1171,7 +1171,7 @@ test_expect_success 'short SHA-1 setup' '
)
'
test_expect_success 'short SHA-1 collide' '
test_expect_success SHA1 'short SHA-1 collide' '
test_when_finished "reset_rebase && git checkout master" &&
git checkout collide &&
(

View file

@ -37,20 +37,27 @@ test_expect_success 'setup' '
test_commit A &&
git checkout -b first &&
test_commit B &&
b=$(git rev-parse --short HEAD) &&
git checkout master &&
test_commit C &&
c=$(git rev-parse --short HEAD) &&
test_commit D &&
d=$(git rev-parse --short HEAD) &&
git merge --no-commit B &&
test_tick &&
git commit -m E &&
git tag -m E E &&
e=$(git rev-parse --short HEAD) &&
git checkout -b second C &&
test_commit F &&
f=$(git rev-parse --short HEAD) &&
test_commit G &&
g=$(git rev-parse --short HEAD) &&
git checkout master &&
git merge --no-commit G &&
test_tick &&
git commit -m H &&
h=$(git rev-parse --short HEAD) &&
git tag -m H H &&
git checkout A &&
test_commit conflicting-G G.t
@ -93,24 +100,24 @@ test_expect_success 'create completely different structure' '
'
test_expect_success 'generate correct todo list' '
cat >expect <<-\EOF &&
cat >expect <<-EOF &&
label onto
reset onto
pick d9df450 B
pick $b B
label E
reset onto
pick 5dee784 C
pick $c C
label branch-point
pick ca2c861 F
pick 088b00a G
pick $f F
pick $g G
label H
reset branch-point # C
pick 12bd07b D
merge -C 2051b56 E # E
merge -C 233d48a H # H
pick $d D
merge -C $e E # E
merge -C $h H # H
EOF

View file

@ -16,7 +16,11 @@ test_expect_success setup '
git add file1 &&
test_tick &&
git commit -m "second" &&
git tag second
git tag second &&
test_oid_cache <<-EOF
cp_ff sha1:1df192cd8bc58a2b275d842cede4d221ad9000d1
cp_ff sha256:e70d6b7fc064bddb516b8d512c9057094b96ce6ff08e12080acc4fe7f1d60a1d
EOF
'
test_expect_success 'cherry-pick using --ff fast forwards' '
@ -102,7 +106,7 @@ test_expect_success 'cherry pick a root commit with --ff' '
git add file2 &&
git commit --amend -m "file2" &&
git cherry-pick --ff first &&
test "$(git rev-parse --verify HEAD)" = "1df192cd8bc58a2b275d842cede4d221ad9000d1"
test "$(git rev-parse --verify HEAD)" = "$(test_oid cp_ff)"
'
test_expect_success 'cherry-pick --ff on unborn branch' '

View file

@ -240,12 +240,14 @@ test_expect_success 'refresh index before checking if it is up-to-date' '
'
test_expect_success 'choking "git rm" should not let it die with cruft' '
test_oid_init &&
git reset -q --hard &&
test_when_finished "rm -f .git/index.lock && git reset -q --hard" &&
i=0 &&
hash=$(test_oid deadbeef) &&
while test $i -lt 12000
do
echo "100644 1234567890123456789012345678901234567890 0 some-file-$i"
echo "100644 $hash 0 some-file-$i"
i=$(( $i + 1 ))
done | git update-index --index-info &&
git rm -n "some-file-*" | : &&

View file

@ -23,6 +23,7 @@ check_verify_failure () {
# first create a commit, so we have a valid object/type
# for the tag.
test_expect_success 'setup' '
test_oid_init &&
echo Hello >A &&
git update-index --add A &&
git commit -m "Initial commit" &&
@ -69,28 +70,28 @@ check_verify_failure '"object" line SHA1 check' '^error: char7: .*SHA1 hash$'
# 4. type line label check
cat >tag.sig <<EOF
object 779e9b33986b1c2670fff52c5067603117b3e895
object $head
xxxx tag
tag mytag
tagger . <> 0 +0000
EOF
check_verify_failure '"type" line label check' '^error: char47: .*"\\ntype "$'
check_verify_failure '"type" line label check' '^error: char.*: .*"\\ntype "$'
############################################################
# 5. type line eol check
echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
echo "object $head" >tag.sig
printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
check_verify_failure '"type" line eol check' '^error: char48: .*"\\n"$'
check_verify_failure '"type" line eol check' '^error: char.*: .*"\\n"$'
############################################################
# 6. tag line label check #1
cat >tag.sig <<EOF
object 779e9b33986b1c2670fff52c5067603117b3e895
object $head
type tag
xxx mytag
tagger . <> 0 +0000
@ -98,37 +99,37 @@ tagger . <> 0 +0000
EOF
check_verify_failure '"tag" line label check #1' \
'^error: char57: no "tag " found$'
'^error: char.*: no "tag " found$'
############################################################
# 7. tag line label check #2
cat >tag.sig <<EOF
object 779e9b33986b1c2670fff52c5067603117b3e895
object $head
type taggggggggggggggggggggggggggggggg
tag
EOF
check_verify_failure '"tag" line label check #2' \
'^error: char87: no "tag " found$'
'^error: char.*: no "tag " found$'
############################################################
# 8. type line type-name length check
cat >tag.sig <<EOF
object 779e9b33986b1c2670fff52c5067603117b3e895
object $head
type taggggggggggggggggggggggggggggggg
tag mytag
EOF
check_verify_failure '"type" line type-name length check' \
'^error: char53: type too long$'
'^error: char.*: type too long$'
############################################################
# 9. verify object (SHA1/type) check
cat >tag.sig <<EOF
object 779e9b33986b1c2670fff52c5067603117b3e895
object $(test_oid deadbeef)
type tagggg
tag mytag
tagger . <> 0 +0000
@ -150,7 +151,7 @@ tagger . <> 0 +0000
EOF
check_verify_failure 'verify tag-name check' \
'^error: char67: could not verify tag name$'
'^error: char.*: could not verify tag name$'
############################################################
# 11. tagger line label check #1
@ -164,7 +165,7 @@ This is filler
EOF
check_verify_failure '"tagger" line label check #1' \
'^error: char70: could not find "tagger "$'
'^error: char.*: could not find "tagger "$'
############################################################
# 12. tagger line label check #2
@ -179,7 +180,7 @@ This is filler
EOF
check_verify_failure '"tagger" line label check #2' \
'^error: char70: could not find "tagger "$'
'^error: char.*: could not find "tagger "$'
############################################################
# 13. disallow missing tag author name
@ -194,7 +195,7 @@ This is filler
EOF
check_verify_failure 'disallow missing tag author name' \
'^error: char77: missing tagger name$'
'^error: char.*: missing tagger name$'
############################################################
# 14. disallow missing tag author name
@ -209,7 +210,7 @@ tagger T A Gger <
EOF
check_verify_failure 'disallow malformed tagger' \
'^error: char77: malformed tagger field$'
'^error: char.*: malformed tagger field$'
############################################################
# 15. allow empty tag email
@ -238,7 +239,7 @@ tagger T A Gger <tag ger@example.com> 0 +0000
EOF
check_verify_failure 'disallow spaces in tag email' \
'^error: char77: malformed tagger field$'
'^error: char.*: malformed tagger field$'
############################################################
# 17. disallow missing tag timestamp
@ -252,7 +253,7 @@ tagger T A Gger <tagger@example.com>__
EOF
check_verify_failure 'disallow missing tag timestamp' \
'^error: char107: missing tag timestamp$'
'^error: char.*: missing tag timestamp$'
############################################################
# 18. detect invalid tag timestamp1
@ -266,7 +267,7 @@ tagger T A Gger <tagger@example.com> Tue Mar 25 15:47:44 2008
EOF
check_verify_failure 'detect invalid tag timestamp1' \
'^error: char107: missing tag timestamp$'
'^error: char.*: missing tag timestamp$'
############################################################
# 19. detect invalid tag timestamp2
@ -280,7 +281,7 @@ tagger T A Gger <tagger@example.com> 2008-03-31T12:20:15-0500
EOF
check_verify_failure 'detect invalid tag timestamp2' \
'^error: char111: malformed tag timestamp$'
'^error: char.*: malformed tag timestamp$'
############################################################
# 20. detect invalid tag timezone1
@ -294,7 +295,7 @@ tagger T A Gger <tagger@example.com> 1206478233 GMT
EOF
check_verify_failure 'detect invalid tag timezone1' \
'^error: char118: malformed tag timezone$'
'^error: char.*: malformed tag timezone$'
############################################################
# 21. detect invalid tag timezone2
@ -308,7 +309,7 @@ tagger T A Gger <tagger@example.com> 1206478233 + 30
EOF
check_verify_failure 'detect invalid tag timezone2' \
'^error: char118: malformed tag timezone$'
'^error: char.*: malformed tag timezone$'
############################################################
# 22. detect invalid tag timezone3
@ -322,7 +323,7 @@ tagger T A Gger <tagger@example.com> 1206478233 -1430
EOF
check_verify_failure 'detect invalid tag timezone3' \
'^error: char118: malformed tag timezone$'
'^error: char.*: malformed tag timezone$'
############################################################
# 23. detect invalid header entry
@ -337,7 +338,7 @@ this line should not be here
EOF
check_verify_failure 'detect invalid header entry' \
'^error: char124: trailing garbage in tag header$'
'^error: char.*: trailing garbage in tag header$'
############################################################
# 24. create valid tag

View file

@ -7,6 +7,18 @@ test_description='Test git stash'
. ./test-lib.sh
diff_cmp () {
for i in "$1" "$2"
do
sed -e 's/^index 0000000\.\.[0-9a-f]*/index 0000000..1234567/' \
-e 's/^index [0-9a-f]*\.\.[0-9a-f]*/index 1234567..89abcde/' \
-e 's/^index [0-9a-f]*,[0-9a-f]*\.\.[0-9a-f]*/index 1234567,7654321..89abcde/' \
"$i" >"$i.compare" || return 1
done &&
test_cmp "$1.compare" "$2.compare" &&
rm -f "$1.compare" "$2.compare"
}
test_expect_success 'stash some dirty working directory' '
echo 1 >file &&
git add file &&
@ -36,7 +48,7 @@ EOF
test_expect_success 'parents of stash' '
test $(git rev-parse stash^) = $(git rev-parse HEAD) &&
git diff stash^2..stash >output &&
test_cmp expect output
diff_cmp expect output
'
test_expect_success 'applying bogus stash does nothing' '
@ -210,13 +222,13 @@ test_expect_success 'stash branch' '
test refs/heads/stashbranch = $(git symbolic-ref HEAD) &&
test $(git rev-parse HEAD) = $(git rev-parse master^) &&
git diff --cached >output &&
test_cmp expect output &&
diff_cmp expect output &&
git diff >output &&
test_cmp expect1 output &&
diff_cmp expect1 output &&
git add file &&
git commit -m alternate\ second &&
git diff master..stashbranch >output &&
test_cmp output expect2 &&
diff_cmp output expect2 &&
test 0 = $(git stash list | wc -l)
'
@ -577,7 +589,7 @@ test_expect_success 'stash show -p - stashes on stack, stash-like argument' '
+bar
EOF
git stash show -p ${STASH_ID} >actual &&
test_cmp expected actual
diff_cmp expected actual
'
test_expect_success 'stash show - no stashes on stack, stash-like argument' '
@ -609,7 +621,7 @@ test_expect_success 'stash show -p - no stashes on stack, stash-like argument' '
+foo
EOF
git stash show -p ${STASH_ID} >actual &&
test_cmp expected actual
diff_cmp expected actual
'
test_expect_success 'stash show --patience shows diff' '
@ -627,7 +639,7 @@ test_expect_success 'stash show --patience shows diff' '
+foo
EOF
git stash show --patience ${STASH_ID} >actual &&
test_cmp expected actual
diff_cmp expected actual
'
test_expect_success 'drop: fail early if specified stash is not a stash ref' '
@ -791,7 +803,7 @@ test_expect_success 'stash where working directory contains "HEAD" file' '
git diff-index --cached --quiet HEAD &&
test "$(git rev-parse stash^)" = "$(git rev-parse HEAD)" &&
git diff stash^..stash >output &&
test_cmp expect output
diff_cmp expect output
'
test_expect_success 'store called with invalid commit' '
@ -847,7 +859,7 @@ test_expect_success 'stash list implies --first-parent -m' '
+working
EOF
git stash list --format=%gd -p >actual &&
test_cmp expect actual
diff_cmp expect actual
'
test_expect_success 'stash list --cc shows combined diff' '
@ -864,7 +876,7 @@ test_expect_success 'stash list --cc shows combined diff' '
++working
EOF
git stash list --format=%gd -p --cc >actual &&
test_cmp expect actual
diff_cmp expect actual
'
test_expect_success 'stash is not confused by partial renames' '

View file

@ -78,7 +78,7 @@ test_expect_success 'git diff-files --no-patch --patch shows the patch' '
test_expect_success 'git diff-files --no-patch --patch-with-raw shows the patch and raw data' '
git diff-files --no-patch --patch-with-raw >actual &&
grep -q "^:100644 100755 .* 0000000000000000000000000000000000000000 M path0\$" actual &&
grep -q "^:100644 100755 .* $ZERO_OID M path0\$" actual &&
tail -n +4 actual >actual-patch &&
compare_diff_patch expected actual-patch
'

View file

@ -7,123 +7,272 @@ test_description='Test diff raw-output.
'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-read-tree-m-3way.sh
cat >.test-plain-OA <<\EOF
:000000 100644 0000000000000000000000000000000000000000 ccba72ad3888a3520b39efcf780b9ee64167535d A AA
:000000 100644 0000000000000000000000000000000000000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 A AN
:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
:000000 040000 0000000000000000000000000000000000000000 6d50f65d3bdab91c63444294d38f08aeff328e42 A DF
:100644 000000 141c1f1642328e4bc46a7d801a71da392e66791e 0000000000000000000000000000000000000000 D DM
:100644 000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 0000000000000000000000000000000000000000 D DN
:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
:100644 100644 03f24c8c4700babccfd28b654e7e8eac402ad6cd 103d9f89b50b9aad03054b579be5e7aa665f2d57 M MD
:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 M MM
:100644 100644 bd084b0c27c7b6cc34f11d6d0509a29be3caf970 a716d58de4a570e0038f5c307bd8db34daea021f M MN
:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 4c86f9a85fbc5e6804ee2e17a797538fbe785bca M TT
:040000 040000 7d670fdcdb9929f6c7dac196ff78689cd1c566a1 5e5f22072bb39f6e12cf663a57cb634c76eefb49 M Z
test_oid_init
test_oid_cache <<\EOF
aa_1 sha1:ccba72ad3888a3520b39efcf780b9ee64167535d
aa_1 sha256:9febfbf18197819b2735c45291f138525d2476d59470f98239647544586ba403
aa_2 sha1:6aa2b5335b16431a0ef71e5c0a28be69183cf6a2
aa_2 sha256:6eaa3437de83f145a4aaa6ba355303075ade547b128ec6a2cd00a81ff7ce7a56
an_1 sha1:7e426fb079479fd67f6d81f984e4ec649a44bc25
an_1 sha256:8f92a0bec99e399a38e3bd0e1bf19fbf121e0160efb29b857df79d439f1c4536
dd_1 sha1:bcc68ef997017466d5c9094bcf7692295f588c9a
dd_1 sha256:07e17428b00639b85485d2b01083d219e2f3e3ba8579e9ca44e9cc8dd554d952
df_1 sha1:6d50f65d3bdab91c63444294d38f08aeff328e42
df_1 sha256:e367cecc27e9bf5451b1c65828cb21938d36a5f8e39c1b03ad6509cc36bb8e9d
df_2 sha1:71420ab81e254145d26d6fc0cddee64c1acd4787
df_2 sha256:0f0a86d10347ff6921d03a3c954679f3f1d14fa3d5cd82f57b32c09755f3a47d
dfd1 sha1:68a6d8b91da11045cf4aa3a5ab9f2a781c701249
dfd1 sha256:f3bd3265b02b6978ce86490d8ad026c573639c974b3de1d9faf30d8d5a77d3d5
dm_1 sha1:141c1f1642328e4bc46a7d801a71da392e66791e
dm_1 sha256:c89f8656e7b94e21ee5fbaf0e2149bbf783c51edbe2ce110349cac13059ee7ed
dm_2 sha1:3c4d8de5fbad08572bab8e10eef8dbb264cf0231
dm_2 sha256:83a572e37e0c94086294dae2cecc43d9131afd6f6c906e495c78972230b54988
dn_1 sha1:35abde1506ddf806572ff4d407bd06885d0f8ee9
dn_1 sha256:775d5852582070e620be63327bfa515fab8f71c7ac3e4f0c3cd6267b4377ba28
ll_2 sha1:1d41122ebdd7a640f29d3c9cc4f9d70094374762
ll_2 sha256:7917b4948a883cfed0a77d3d5a625dc8577d6ddcc3c6c3bbc56c4d4226a2246d
md_1 sha1:03f24c8c4700babccfd28b654e7e8eac402ad6cd
md_1 sha256:fc9f30369b978595ad685ba11ca9a17de0af16d79cd4b629975f4f1590033902
md_2 sha1:103d9f89b50b9aad03054b579be5e7aa665f2d57
md_2 sha256:fc78ec75275628762fe520479a6b2398dec295ce7aabcb1d15e5963c7b4e9317
mm_1 sha1:b258508afb7ceb449981bd9d63d2d3e971bf8d34
mm_1 sha256:a4b7847d228e900e3000285e240c20fd96f9dd41ce1445305f6eada126d4a04a
mm_2 sha1:b431b272d829ff3aa4d1a5085f4394ab4d3305b6
mm_2 sha256:3f8b83ea36aacf689bcf1a1290a9a8ed341564d32682ea6f76fea9a979186782
mm_3 sha1:19989d4559aae417fedee240ccf2ba315ea4dc2b
mm_3 sha256:71b3bfc5747ac033fff9ea0ab39ee453a3af2969890e75d6ef547b87544e2681
mn_1 sha1:bd084b0c27c7b6cc34f11d6d0509a29be3caf970
mn_1 sha256:47a67450583d7a329eb01a7c4ba644945af72c0ed2c7c95eb5a00d6e46d4d483
mn_2 sha1:a716d58de4a570e0038f5c307bd8db34daea021f
mn_2 sha256:f95104c1ebe27acb84bac25a7be98c71f6b8d3054b21f357a5be0c524ad97e08
nm_1 sha1:c8f25781e8f1792e3e40b74225e20553041b5226
nm_1 sha256:09baddc7afaa62e62e152c23c9c3ab94bf15a3894031e227e9be7fe68e1f4e49
nm_2 sha1:cdb9a8c3da571502ac30225e9c17beccb8387983
nm_2 sha256:58b5227956ac2d2a08d0efa513c0ae37430948b16791ea3869a1308dbf05536d
na_1 sha1:15885881ea69115351c09b38371f0348a3fb8c67
na_1 sha256:18e4fdd1670cd7968ee23d35bfd29e5418d56fb190c840094c1c57ceee0aad8f
nd_1 sha1:a4e179e4291e5536a5e1c82e091052772d2c5a93
nd_1 sha256:07dac9b01d00956ea0c65bd993d7de4864aeef2ed3cbb1255d9f1d949fcd6df6
ss_1 sha1:40c959f984c8b89a2b02520d17f00d717f024397
ss_1 sha256:50fc1b5df74d9910db2f9270993484235f15b69b75b01bcfb53e059289d14af9
ss_2 sha1:2ac547ae9614a00d1b28275de608131f7a0e259f
ss_2 sha256:a90f02e6044f1497d13db587d22ab12f90150a7d1e084afcf96065fab35ae2bc
tt_1 sha1:4ac13458899ab908ef3b1128fa378daefc88d356
tt_1 sha256:c53113c7dd5060e86b5b251428bd058f6726f66273c6a24bff1c61a04f498dd3
tt_2 sha1:4c86f9a85fbc5e6804ee2e17a797538fbe785bca
tt_2 sha256:0775f2a296129a7cf2862b46bc0e88c14d593f2773a3e3fb1c5193db6f5a7e77
tt_3 sha1:c4e4a12231b9fa79a0053cb6077fcb21bb5b135a
tt_3 sha256:47860f93cdd211f96443e0560f21c57ab6c2f4b0ac27ff03651a352e53fe8484
z__1 sha1:7d670fdcdb9929f6c7dac196ff78689cd1c566a1
z__1 sha256:44d0f37aff5e51cfcfdd1134c93a6419bcca7b9964f792ffcd5f9b4fcba1ee63
z__2 sha1:5e5f22072bb39f6e12cf663a57cb634c76eefb49
z__2 sha256:d29de162113190fed104eb5f010820cef4e315f89b9326e8497f7219fb737894
z__3 sha1:1ba523955d5160681af65cb776411f574c1e8155
z__3 sha256:07422d772b07794ab4369a5648e617719f89c2d2212cbeab05d97214b6471636
zaa1 sha1:8acb8e9750e3f644bf323fcf3d338849db106c77
zaa1 sha256:e79b029282c8abec2d9f3f7faceaf2a1405e02d1f368e66450ae66cf5b68d1f4
zaa2 sha1:6c0b99286d0bce551ac4a7b3dff8b706edff3715
zaa2 sha256:c82bd78c3e69ea1796e6b1a7a3ba45bb106c50e819296475b862123d3f5cc5a0
zan1 sha1:087494262084cefee7ed484d20c8dc0580791272
zan1 sha256:4b159eb3804d05599023dd074f771d06d02870f4ab24a7165add8ac3d703b8d3
zdd1 sha1:879007efae624d2b1307214b24a956f0a8d686a8
zdd1 sha256:eecfdd4d8092dd0363fb6d4548b54c6afc8982c3ed9b34e393f1d6a921d8eaa3
zdm1 sha1:9b541b2275c06e3a7b13f28badf5294e2ae63df4
zdm1 sha256:ab136e88e19a843c4bf7713d2090d5a2186ba16a6a80dacc12eeddd256a8e556
zdm2 sha1:d77371d15817fcaa57eeec27f770c505ba974ec1
zdm2 sha256:1c1a5f57363f46a15d95ce8527b3c2c158d88d16853b4acbf81bd20fd2c89a46
zdn1 sha1:beb5d38c55283d280685ea21a0e50cfcc0ca064a
zdn1 sha256:0f0eca66183617b0aa5ad74b256540329f841470922ca6760263c996d825eb18
zmd1 sha1:d41fda41b7ec4de46b43cb7ea42a45001ae393d5
zmd1 sha256:1ed32d481852eddf31a0ce12652a0ad14bf5b7a842667b5dbb0b50f35bf1c80a
zmd2 sha1:a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9
zmd2 sha256:b238da211b404f8917df2d9c6f7030535e904b2186131007a3c292ec6902f933
zmm1 sha1:4ca22bae2527d3d9e1676498a0fba3b355bd1278
zmm1 sha256:072b1d85b5f34fabc99dfa46008c5418df68302d3e317430006f49b32d244226
zmm2 sha1:61422ba9c2c873416061a88cd40a59a35b576474
zmm2 sha256:81dd5d2b3c5cda16fef552256aed4e2ea0802a8450a08f308a92142112ff6dda
zmm3 sha1:697aad7715a1e7306ca76290a3dd4208fbaeddfa
zmm3 sha256:8b10fab49e9be3414aa5e9a93d0e46f9569053440138a7c19a5eb5536d8e95bf
zmn1 sha1:b16d7b25b869f2beb124efa53467d8a1550ad694
zmn1 sha256:609e4f75d1295e844c826feeba213acb0b6cfc609adfe8ff705b19e3829ae3e9
zmn2 sha1:a5c544c21cfcb07eb80a4d89a5b7d1570002edfd
zmn2 sha256:d6d03edf2dc1a3b267a8205de5f41a2ff4b03def8c7ae02052b543fb09d589fc
zna1 sha1:d12979c22fff69c59ca9409e7a8fe3ee25eaee80
zna1 sha256:b37b80e789e8ea32aa323f004628f02013f632124b0282c7fe00a127d3c64c3c
znd1 sha1:a18393c636b98e9bd7296b8b437ea4992b72440c
znd1 sha256:af92a22eee8c38410a0c9d2b5135a10aeb052cbc7cf675541ed9a67bfcaf7cf9
znm1 sha1:3fdbe17fd013303a2e981e1ca1c6cd6e72789087
znm1 sha256:f75aeaa0c11e76918e381c105f0752932c6150e941fec565d24fa31098a13dc1
znm2 sha1:7e09d6a3a14bd630913e8c75693cea32157b606d
znm2 sha256:938d73cfbaa1c902a84fb5b3afd9736aa0590367fb9bd59c6c4d072ce70fcd6d
EOF
cat >.test-recursive-OA <<\EOF
:000000 100644 0000000000000000000000000000000000000000 ccba72ad3888a3520b39efcf780b9ee64167535d A AA
:000000 100644 0000000000000000000000000000000000000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 A AN
:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
:000000 100644 0000000000000000000000000000000000000000 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 A DF/DF
:100644 000000 141c1f1642328e4bc46a7d801a71da392e66791e 0000000000000000000000000000000000000000 D DM
:100644 000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 0000000000000000000000000000000000000000 D DN
:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
:100644 100644 03f24c8c4700babccfd28b654e7e8eac402ad6cd 103d9f89b50b9aad03054b579be5e7aa665f2d57 M MD
:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 M MM
:100644 100644 bd084b0c27c7b6cc34f11d6d0509a29be3caf970 a716d58de4a570e0038f5c307bd8db34daea021f M MN
:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 4c86f9a85fbc5e6804ee2e17a797538fbe785bca M TT
:000000 100644 0000000000000000000000000000000000000000 8acb8e9750e3f644bf323fcf3d338849db106c77 A Z/AA
:000000 100644 0000000000000000000000000000000000000000 087494262084cefee7ed484d20c8dc0580791272 A Z/AN
:100644 000000 879007efae624d2b1307214b24a956f0a8d686a8 0000000000000000000000000000000000000000 D Z/DD
:100644 000000 9b541b2275c06e3a7b13f28badf5294e2ae63df4 0000000000000000000000000000000000000000 D Z/DM
:100644 000000 beb5d38c55283d280685ea21a0e50cfcc0ca064a 0000000000000000000000000000000000000000 D Z/DN
:100644 100644 d41fda41b7ec4de46b43cb7ea42a45001ae393d5 a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9 M Z/MD
:100644 100644 4ca22bae2527d3d9e1676498a0fba3b355bd1278 61422ba9c2c873416061a88cd40a59a35b576474 M Z/MM
:100644 100644 b16d7b25b869f2beb124efa53467d8a1550ad694 a5c544c21cfcb07eb80a4d89a5b7d1570002edfd M Z/MN
cat >.test-plain-OA <<EOF
:000000 100644 $(test_oid zero) $(test_oid aa_1) A AA
:000000 100644 $(test_oid zero) $(test_oid an_1) A AN
:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
:000000 040000 $(test_oid zero) $(test_oid df_1) A DF
:100644 000000 $(test_oid dm_1) $(test_oid zero) D DM
:100644 000000 $(test_oid dn_1) $(test_oid zero) D DN
:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
:100644 100644 $(test_oid md_1) $(test_oid md_2) M MD
:100644 100644 $(test_oid mm_1) $(test_oid mm_2) M MM
:100644 100644 $(test_oid mn_1) $(test_oid mn_2) M MN
:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
:100644 100644 $(test_oid tt_1) $(test_oid tt_2) M TT
:040000 040000 $(test_oid z__1) $(test_oid z__2) M Z
EOF
cat >.test-plain-OB <<\EOF
:000000 100644 0000000000000000000000000000000000000000 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 A AA
:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
:100644 100644 141c1f1642328e4bc46a7d801a71da392e66791e 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 M DM
:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
:100644 000000 03f24c8c4700babccfd28b654e7e8eac402ad6cd 0000000000000000000000000000000000000000 D MD
:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
:040000 040000 7d670fdcdb9929f6c7dac196ff78689cd1c566a1 1ba523955d5160681af65cb776411f574c1e8155 M Z
cat >.test-recursive-OA <<EOF
:000000 100644 $(test_oid zero) $(test_oid aa_1) A AA
:000000 100644 $(test_oid zero) $(test_oid an_1) A AN
:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
:000000 100644 $(test_oid zero) $(test_oid dfd1) A DF/DF
:100644 000000 $(test_oid dm_1) $(test_oid zero) D DM
:100644 000000 $(test_oid dn_1) $(test_oid zero) D DN
:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
:100644 100644 $(test_oid md_1) $(test_oid md_2) M MD
:100644 100644 $(test_oid mm_1) $(test_oid mm_2) M MM
:100644 100644 $(test_oid mn_1) $(test_oid mn_2) M MN
:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
:100644 100644 $(test_oid tt_1) $(test_oid tt_2) M TT
:000000 100644 $(test_oid zero) $(test_oid zaa1) A Z/AA
:000000 100644 $(test_oid zero) $(test_oid zan1) A Z/AN
:100644 000000 $(test_oid zdd1) $(test_oid zero) D Z/DD
:100644 000000 $(test_oid zdm1) $(test_oid zero) D Z/DM
:100644 000000 $(test_oid zdn1) $(test_oid zero) D Z/DN
:100644 100644 $(test_oid zmd1) $(test_oid zmd2) M Z/MD
:100644 100644 $(test_oid zmm1) $(test_oid zmm2) M Z/MM
:100644 100644 $(test_oid zmn1) $(test_oid zmn2) M Z/MN
EOF
cat >.test-recursive-OB <<\EOF
:000000 100644 0000000000000000000000000000000000000000 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 A AA
:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
:100644 100644 141c1f1642328e4bc46a7d801a71da392e66791e 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 M DM
:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
:100644 000000 03f24c8c4700babccfd28b654e7e8eac402ad6cd 0000000000000000000000000000000000000000 D MD
:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
:000000 100644 0000000000000000000000000000000000000000 6c0b99286d0bce551ac4a7b3dff8b706edff3715 A Z/AA
:100644 000000 879007efae624d2b1307214b24a956f0a8d686a8 0000000000000000000000000000000000000000 D Z/DD
:100644 100644 9b541b2275c06e3a7b13f28badf5294e2ae63df4 d77371d15817fcaa57eeec27f770c505ba974ec1 M Z/DM
:100644 000000 d41fda41b7ec4de46b43cb7ea42a45001ae393d5 0000000000000000000000000000000000000000 D Z/MD
:100644 100644 4ca22bae2527d3d9e1676498a0fba3b355bd1278 697aad7715a1e7306ca76290a3dd4208fbaeddfa M Z/MM
:000000 100644 0000000000000000000000000000000000000000 d12979c22fff69c59ca9409e7a8fe3ee25eaee80 A Z/NA
:100644 000000 a18393c636b98e9bd7296b8b437ea4992b72440c 0000000000000000000000000000000000000000 D Z/ND
:100644 100644 3fdbe17fd013303a2e981e1ca1c6cd6e72789087 7e09d6a3a14bd630913e8c75693cea32157b606d M Z/NM
cat >.test-plain-OB <<EOF
:000000 100644 $(test_oid zero) $(test_oid aa_2) A AA
:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
:100644 100644 $(test_oid dm_1) $(test_oid dm_2) M DM
:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
:100644 000000 $(test_oid md_1) $(test_oid zero) D MD
:100644 100644 $(test_oid mm_1) $(test_oid mm_3) M MM
:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
:100644 100644 $(test_oid tt_1) $(test_oid tt_3) M TT
:040000 040000 $(test_oid z__1) $(test_oid z__3) M Z
EOF
cat >.test-plain-AB <<\EOF
:100644 100644 ccba72ad3888a3520b39efcf780b9ee64167535d 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 M AA
:100644 000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 0000000000000000000000000000000000000000 D AN
:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
:040000 000000 6d50f65d3bdab91c63444294d38f08aeff328e42 0000000000000000000000000000000000000000 D DF
:000000 100644 0000000000000000000000000000000000000000 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 A DM
:000000 100644 0000000000000000000000000000000000000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 A DN
:100644 000000 103d9f89b50b9aad03054b579be5e7aa665f2d57 0000000000000000000000000000000000000000 D MD
:100644 100644 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
:100644 100644 a716d58de4a570e0038f5c307bd8db34daea021f bd084b0c27c7b6cc34f11d6d0509a29be3caf970 M MN
:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
:100644 100644 4c86f9a85fbc5e6804ee2e17a797538fbe785bca c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
:040000 040000 5e5f22072bb39f6e12cf663a57cb634c76eefb49 1ba523955d5160681af65cb776411f574c1e8155 M Z
cat >.test-recursive-OB <<EOF
:000000 100644 $(test_oid zero) $(test_oid aa_2) A AA
:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
:100644 100644 $(test_oid dm_1) $(test_oid dm_2) M DM
:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
:100644 000000 $(test_oid md_1) $(test_oid zero) D MD
:100644 100644 $(test_oid mm_1) $(test_oid mm_3) M MM
:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
:100644 100644 $(test_oid tt_1) $(test_oid tt_3) M TT
:000000 100644 $(test_oid zero) $(test_oid zaa2) A Z/AA
:100644 000000 $(test_oid zdd1) $(test_oid zero) D Z/DD
:100644 100644 $(test_oid zdm1) $(test_oid zdm2) M Z/DM
:100644 000000 $(test_oid zmd1) $(test_oid zero) D Z/MD
:100644 100644 $(test_oid zmm1) $(test_oid zmm3) M Z/MM
:000000 100644 $(test_oid zero) $(test_oid zna1) A Z/NA
:100644 000000 $(test_oid znd1) $(test_oid zero) D Z/ND
:100644 100644 $(test_oid znm1) $(test_oid znm2) M Z/NM
EOF
cat >.test-recursive-AB <<\EOF
:100644 100644 ccba72ad3888a3520b39efcf780b9ee64167535d 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 M AA
:100644 000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 0000000000000000000000000000000000000000 D AN
:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
:100644 000000 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 0000000000000000000000000000000000000000 D DF/DF
:000000 100644 0000000000000000000000000000000000000000 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 A DM
:000000 100644 0000000000000000000000000000000000000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 A DN
:100644 000000 103d9f89b50b9aad03054b579be5e7aa665f2d57 0000000000000000000000000000000000000000 D MD
:100644 100644 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
:100644 100644 a716d58de4a570e0038f5c307bd8db34daea021f bd084b0c27c7b6cc34f11d6d0509a29be3caf970 M MN
:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
:100644 100644 4c86f9a85fbc5e6804ee2e17a797538fbe785bca c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
:100644 100644 8acb8e9750e3f644bf323fcf3d338849db106c77 6c0b99286d0bce551ac4a7b3dff8b706edff3715 M Z/AA
:100644 000000 087494262084cefee7ed484d20c8dc0580791272 0000000000000000000000000000000000000000 D Z/AN
:000000 100644 0000000000000000000000000000000000000000 d77371d15817fcaa57eeec27f770c505ba974ec1 A Z/DM
:000000 100644 0000000000000000000000000000000000000000 beb5d38c55283d280685ea21a0e50cfcc0ca064a A Z/DN
:100644 000000 a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9 0000000000000000000000000000000000000000 D Z/MD
:100644 100644 61422ba9c2c873416061a88cd40a59a35b576474 697aad7715a1e7306ca76290a3dd4208fbaeddfa M Z/MM
:100644 100644 a5c544c21cfcb07eb80a4d89a5b7d1570002edfd b16d7b25b869f2beb124efa53467d8a1550ad694 M Z/MN
:000000 100644 0000000000000000000000000000000000000000 d12979c22fff69c59ca9409e7a8fe3ee25eaee80 A Z/NA
:100644 000000 a18393c636b98e9bd7296b8b437ea4992b72440c 0000000000000000000000000000000000000000 D Z/ND
:100644 100644 3fdbe17fd013303a2e981e1ca1c6cd6e72789087 7e09d6a3a14bd630913e8c75693cea32157b606d M Z/NM
cat >.test-plain-AB <<EOF
:100644 100644 $(test_oid aa_1) $(test_oid aa_2) M AA
:100644 000000 $(test_oid an_1) $(test_oid zero) D AN
:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
:040000 000000 $(test_oid df_1) $(test_oid zero) D DF
:000000 100644 $(test_oid zero) $(test_oid dm_2) A DM
:000000 100644 $(test_oid zero) $(test_oid dn_1) A DN
:100644 000000 $(test_oid md_2) $(test_oid zero) D MD
:100644 100644 $(test_oid mm_2) $(test_oid mm_3) M MM
:100644 100644 $(test_oid mn_2) $(test_oid mn_1) M MN
:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
:100644 100644 $(test_oid tt_2) $(test_oid tt_3) M TT
:040000 040000 $(test_oid z__2) $(test_oid z__3) M Z
EOF
cat >.test-recursive-AB <<EOF
:100644 100644 $(test_oid aa_1) $(test_oid aa_2) M AA
:100644 000000 $(test_oid an_1) $(test_oid zero) D AN
:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
:100644 000000 $(test_oid dfd1) $(test_oid zero) D DF/DF
:000000 100644 $(test_oid zero) $(test_oid dm_2) A DM
:000000 100644 $(test_oid zero) $(test_oid dn_1) A DN
:100644 000000 $(test_oid md_2) $(test_oid zero) D MD
:100644 100644 $(test_oid mm_2) $(test_oid mm_3) M MM
:100644 100644 $(test_oid mn_2) $(test_oid mn_1) M MN
:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
:100644 100644 $(test_oid tt_2) $(test_oid tt_3) M TT
:100644 100644 $(test_oid zaa1) $(test_oid zaa2) M Z/AA
:100644 000000 $(test_oid zan1) $(test_oid zero) D Z/AN
:000000 100644 $(test_oid zero) $(test_oid zdm2) A Z/DM
:000000 100644 $(test_oid zero) $(test_oid zdn1) A Z/DN
:100644 000000 $(test_oid zmd2) $(test_oid zero) D Z/MD
:100644 100644 $(test_oid zmm2) $(test_oid zmm3) M Z/MM
:100644 100644 $(test_oid zmn2) $(test_oid zmn1) M Z/MN
:000000 100644 $(test_oid zero) $(test_oid zna1) A Z/NA
:100644 000000 $(test_oid znd1) $(test_oid zero) D Z/ND
:100644 100644 $(test_oid znm1) $(test_oid znm2) M Z/NM
EOF
cmp_diff_files_output () {

View file

@ -14,6 +14,7 @@ test_expect_success \
'cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
echo frotz >rezrov &&
git update-index --add COPYING rezrov &&
orig=$(git hash-object COPYING) &&
tree=$(git write-tree) &&
echo $tree'
@ -22,6 +23,8 @@ test_expect_success \
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
rm -f COPYING &&
c1=$(git hash-object COPYING.1) &&
c2=$(git hash-object COPYING.2) &&
git update-index --add --remove COPYING COPYING.?'
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
@ -31,11 +34,11 @@ test_expect_success \
git diff-index -z -C $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
cat >expected <<EOF
:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 R1234
:100644 100644 $orig $c2 R1234
COPYING
COPYING.2
EOF
@ -57,10 +60,10 @@ test_expect_success \
# about rezrov.
git diff-index -z -C $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M
cat >expected <<EOF
:100644 100644 $orig $c2 M
COPYING
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
EOF
@ -82,8 +85,8 @@ test_expect_success \
git update-index --add --remove COPYING COPYING.1'
git diff-index -z -C --find-copies-harder $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
cat >expected <<EOF
:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
EOF