annotate tests/test-merge-no-file-change.t @ 50400:95acba2c29f6

encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings Apparently the code uses "+=" with a bytes object, which is linear-time, so the whole encoding is quadratic-time. This patch makes us use a bytearray object, instead, which has a(n amortized-)constant-time append operation. The encoding is still not particularly fast, but at least a 10MB file takes tens of seconds, not many hours to encode.
author Arseniy Alekseyev <aalekseyev@janestreet.com>
date Mon, 06 Mar 2023 11:27:57 +0000
parents 8988e640a8ac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
1 $ cat <<'EOF' >> "$HGRCPATH"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
2 > [extensions]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
3 > convert =
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
4 > [templates]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
5 > l = '{rev}:{node|short} p={p1rev},{p2rev} m={manifest} f={files|json}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
6 > EOF
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
7
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
8 $ check_convert_identity () {
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
9 > hg convert -q "$1" "$1.converted"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
10 > hg outgoing -q -R "$1.converted" "$1"
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
11 > if [ "$?" != 1 ]; then
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
12 > echo '*** BUG: hash changes on convert ***'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
13 > hg log -R "$1.converted" -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
14 > fi
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
15 > }
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
16
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
17 Files added at both parents:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
18
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
19 $ hg init added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
20 $ cd added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
21 $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
22 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
23 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
24 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
25 $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
26
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
27 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
28 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
29 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
30 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
31 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
32 b
39111
46da52f4b820 commit: try hard to reuse p1 manifest if nothing changed
Yuya Nishihara <yuya@tcha.org>
parents: 39110
diff changeset
33 not reusing manifest (no file change in changelog, but manifest differs)
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
34 committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
35 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
36 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
37 committed changeset 3:7aa8a293f5d97377037afc21e871e036e718d659
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
38 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
39 @ 3:7aa8a293f5d9 p=2,1 m=3:8667461869a1 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
40 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
41 | o 2:e0ea47086fce p=0,-1 m=2:b2e5b07f9374 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
42 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
43 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
44 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
45 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
46
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
47
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
48 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
49 $ check_convert_identity added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
50
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
51 Files added at both parents, but the other removed at the merge:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
52 (In this case, ctx.files() after the commit contains the removed file "b", but
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
53 its manifest does not differ from p1.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
54
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
55 $ hg init added-both-removed-at-merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
56 $ cd added-both-removed-at-merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
57 $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
58 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
59 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
60 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
61 $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
62
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
63 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
64 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
65 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
66 $ hg rm -f b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
67 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
68 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
69 committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
70 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
71 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
72 committed changeset 3:915745f3ca3d9d699925269474c2d0a9526e8dfa
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
73 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
74 @ 3:915745f3ca3d p=2,1 m=3:8e9cf3456921 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
75 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
76 | o 2:e0ea47086fce p=0,-1 m=2:b2e5b07f9374 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
77 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
78 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
79 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
80 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
81
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
82
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
83 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
84 $ check_convert_identity added-both
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
85
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
86 An identical file added at both parents:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
87
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
88 $ hg init added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
89 $ cd added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
90 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
91 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
92 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
93 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
94 $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
95 $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
96
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
97 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
98 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
99 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
100 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
101 reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
102 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
103 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
104 committed changeset 3:de26182cd210f0c3fb175ca7616704ab963d3024
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
105 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
106 @ 3:de26182cd210 p=2,1 m=1:686dbf0aeca4 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
107 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
108 | o 2:f00991f11eca p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
109 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
110 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
111 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
112 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
113
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
114
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
115 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
116 $ check_convert_identity added-identical
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
117
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
118 #if execbit
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
119
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
120 An identical file added at both parents, but the flag differs. Take local:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
121
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
122 $ hg init flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
123 $ cd flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
124 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
125 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
126 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
127 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
128 $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
129 $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
130 $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
131
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
132 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
133 warning: cannot merge flags for b without common ancestor - keeping local flags
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
134 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
135 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
136 $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
137 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
138 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
139 b
42286
8988e640a8ac commit: fix a typo ("form p1" -> "from p1")
Martin von Zweigbergk <martinvonz@google.com>
parents: 39111
diff changeset
140 reusing manifest from p1 (listed files actually unchanged)
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
141 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
142 updating the branch cache
39111
46da52f4b820 commit: try hard to reuse p1 manifest if nothing changed
Yuya Nishihara <yuya@tcha.org>
parents: 39110
diff changeset
143 committed changeset 3:c8d50407916ef8a5a97cb6e36ca9bc844a6ee13e
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
144 $ hg log -GTl
39111
46da52f4b820 commit: try hard to reuse p1 manifest if nothing changed
Yuya Nishihara <yuya@tcha.org>
parents: 39110
diff changeset
145 @ 3:c8d50407916e p=2,1 m=2:36b69ba4b24b f=[]
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
146 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
147 | o 2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
148 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
149 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
150 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
151 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
152
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
153 $ hg files -vr3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
154 0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
155 0 x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
156
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
157 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
158 $ check_convert_identity flag-change-take-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
159
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
160 An identical file added at both parents, but the flag differs. Take other:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
161
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
162 $ hg init flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
163 $ cd flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
164 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
165 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
166 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
167 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
168 $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
169 $ chmod +x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
170 $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
171
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
172 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
173 warning: cannot merge flags for b without common ancestor - keeping local flags
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
174 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
175 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
176 $ chmod -x b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
177 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
178 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
179 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
180 committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
181 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
182 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
183 committed changeset 3:06a62a687d87c7d8944743dee1ee9d8c66b3f6e3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
184 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
185 @ 3:06a62a687d87 p=2,1 m=3:2a315ba1aa45 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
186 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
187 | o 2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
188 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
189 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
190 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
191 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
192
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
193 $ hg files -vr3
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
194 0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
195 0 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
196
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
197 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
198 $ check_convert_identity flag-change-take-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
199
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
200 #endif
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
201
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
202 An identical file added at both parents, one more file added at p2:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
203
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
204 $ hg init added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
205 $ cd added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
206 $ touch a b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
207 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
208 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
209 $ hg ci -qAm2 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
210 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
211 $ touch b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
212 $ hg ci -qAm3 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
213
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
214 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
215 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
216 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
217 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
218 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
219 c
39111
46da52f4b820 commit: try hard to reuse p1 manifest if nothing changed
Yuya Nishihara <yuya@tcha.org>
parents: 39110
diff changeset
220 not reusing manifest (no file change in changelog, but manifest differs)
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
221 committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
222 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
223 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
224 committed changeset 4:f7fbc4e4d9a8fde03ba475adad675578c8bf472d
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
225 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
226 @ 4:f7fbc4e4d9a8 p=3,2 m=3:92acd5bfd716 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
227 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
228 | o 3:e9d9f3cc981f p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
229 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
230 o | 2:93c5529a4ec7 p=1,-1 m=2:ae25a31b30b3 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
231 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
232 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
233 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
234 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
235
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
236
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
237 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
238 $ check_convert_identity added-some-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
239
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
240 An identical file added at both parents, one more file added at p1:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
241 (In this case, p1 manifest is reused at the merge commit, which means the
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
242 manifest DAG does not have the same shape as the changelog.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
243
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
244 $ hg init added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
245 $ cd added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
246 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
247 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
248 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
249 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
250 $ touch b c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
251 $ hg ci -qAm2 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
252 $ hg ci -qAm3 c
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
253
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
254 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
255 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
256 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
257 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
258 reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
259 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
260 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
261 committed changeset 4:a9f0f589a913f5a149dc10dfbd5af726977c36c4
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
262 $ hg log -GTl
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
263 @ 4:a9f0f589a913 p=3,1 m=2:ae25a31b30b3 f=[]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
264 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
265 | o 3:b8dc385241b5 p=2,-1 m=2:ae25a31b30b3 f=["c"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
266 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
267 | o 2:f00991f11eca p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
268 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
269 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
270 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
271 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"]
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
272
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
273
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
274 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
275 $ check_convert_identity added-some-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
276
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
277 A file added at p2, a named branch created at p1:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
278
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
279 $ hg init named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
280 $ cd named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
281 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
282 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
283 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
284 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
285 $ hg branch -q foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
286 $ hg ci -m2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
287
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
288 $ hg merge default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
289 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
290 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
291 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
292 committing files:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
293 b
39111
46da52f4b820 commit: try hard to reuse p1 manifest if nothing changed
Yuya Nishihara <yuya@tcha.org>
parents: 39110
diff changeset
294 not reusing manifest (no file change in changelog, but manifest differs)
39110
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
295 committing manifest
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
296 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
297 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
298 committed changeset 3:fb97d83b02fd072295cfc2171f21b7d38509bfd7
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
299 $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
300 @ 3:fb97d83b02fd p=2,1 m=2:9091c64f4ea1 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
301 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
302 | o 2:a3a9fa6587e5 p=0,-1 m=0:8515d4bfda76 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
303 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
304 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
305 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
306 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
307
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
308
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
309 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
310 $ check_convert_identity named-branch-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
311
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
312 A file added at p1, a named branch created at p2:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
313 (In this case, p1 manifest is reused at the merge commit, which means the
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
314 manifest DAG does not have the same shape as the changelog.)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
315
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
316 $ hg init named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
317 $ cd named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
318 $ touch a b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
319 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
320 $ hg branch -q foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
321 $ hg ci -m1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
322 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
323 $ hg ci -qAm1 b
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
324
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
325 $ hg merge foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
326 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
327 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
328 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
329 reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
330 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
331 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
332 committed changeset 3:036823e24692218324d4af43b07ff89f8a000096
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
333 $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
334 @ 3:036823e24692 p=2,1 m=1:686dbf0aeca4 f=[] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
335 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
336 | o 2:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
337 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
338 o | 1:da38c8e00727 p=0,-1 m=0:8515d4bfda76 f=[] branch=foo
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
339 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
340 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
341
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
342
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
343 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
344 $ check_convert_identity named-branch-p2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
345
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
346 A file changed once at both parents, but amended to have identical content:
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
347
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
348 $ hg init amend-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
349 $ cd amend-p1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
350 $ touch a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
351 $ hg ci -qAm0 a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
352 $ echo foo > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
353 $ hg ci -m1
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
354 $ hg up -q 0
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
355 $ echo bar > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
356 $ hg ci -qm2
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
357 $ echo foo > a
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
358 $ hg ci -qm3 --amend
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
359
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
360 $ hg merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
361 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
362 (branch merge, don't forget to commit)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
363 $ hg ci --debug -m merge
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
364 reusing manifest from p1 (no file change)
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
365 committing changelog
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
366 updating the branch cache
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
367 committed changeset 3:314e5bc5adf5c58ea571efabe33eedba20a201aa
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
368 $ hg log -GT'{l} branch={branch}'
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
369 @ 3:314e5bc5adf5 p=2,1 m=1:d33ea248bd73 f=[] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
370 |\
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
371 | o 2:de9c64f226a3 p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
372 | |
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
373 o | 1:6a74aec01b3c p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
374 |/
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
375 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
376
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
377
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
378 $ cd ..
f0c2653ca706 merge: add tests for commit with no content change
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
379 $ check_convert_identity amend-p1