Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-glog @ 5045:f191bc3916f7
merge: do early copy to deal with issue636
Without copies/renames, merges source names are 1:1 with their
targets. Copies and renames introduce the possibility that there will
be two merges with the same input but different output. By doing the
copy to the destination name before the merge, the actual merge
becomes 1:1 again, and no source is the input to two different merges.
- add a preliminary scan to applyupdates to do copies
- for the merge action, pass the old name (for finding ancestors) and
the new name (for input to the merge) to filemerge
- eliminate the old post-merge copy
- lookup file contents from new name in filemerge
- pass new name to external merge helper
- report merge failure at new name
- add a test
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 01 Aug 2007 12:33:12 -0500 |
parents | 8d4fac0a9df7 |
children |
rev | line source |
---|---|
4340 | 1 #!/bin/sh |
2 | |
3 # @ (34) head | |
4 # | | |
5 # | o (33) head | |
6 # | | | |
7 # o | (32) expand | |
8 # |\ \ | |
9 # | o \ (31) expand | |
10 # | |\ \ | |
11 # | | o \ (30) expand | |
12 # | | |\ \ | |
13 # | | | o | (29) regular commit | |
14 # | | | | | | |
15 # | | o | | (28) merge zero known | |
16 # | | |\ \ \ | |
17 # o | | | | | (27) collapse | |
18 # |/ / / / / | |
19 # | | o---+ (26) merge one known; far right | |
20 # | | | | | | |
21 # +---o | | (25) merge one known; far left | |
22 # | | | | | | |
23 # | | o | | (24) merge one known; immediate right | |
24 # | | |\| | | |
25 # | | o | | (23) merge one known; immediate left | |
26 # | |/| | | | |
27 # +---o---+ (22) merge two known; one far left, one far right | |
28 # | | / / | |
29 # o | | | (21) expand | |
30 # |\ \ \ \ | |
31 # | o---+-+ (20) merge two known; two far right | |
32 # | / / / | |
33 # o | | | (19) expand | |
34 # |\ \ \ \ | |
35 # +---+---o (18) merge two known; two far left | |
36 # | | | | | |
37 # | o | | (17) expand | |
38 # | |\ \ \ | |
39 # | | o---+ (16) merge two known; one immediate right, one near right | |
40 # | | |/ / | |
41 # o | | | (15) expand | |
42 # |\ \ \ \ | |
43 # | o-----+ (14) merge two known; one immediate right, one far right | |
44 # | |/ / / | |
45 # o | | | (13) expand | |
46 # |\ \ \ \ | |
47 # +---o | | (12) merge two known; one immediate right, one far left | |
48 # | | |/ / | |
49 # | o | | (11) expand | |
50 # | |\ \ \ | |
51 # | | o---+ (10) merge two known; one immediate left, one near right | |
52 # | |/ / / | |
53 # o | | | (9) expand | |
54 # |\ \ \ \ | |
55 # | o-----+ (8) merge two known; one immediate left, one far right | |
56 # |/ / / / | |
57 # o | | | (7) expand | |
58 # |\ \ \ \ | |
59 # +---o | | (6) merge two known; one immediate left, one far left | |
60 # | |/ / / | |
61 # | o | | (5) expand | |
62 # | |\ \ \ | |
63 # | | o | | (4) merge two known; one immediate left, one immediate right | |
64 # | |/|/ / | |
65 # | o / / (3) collapse | |
66 # |/ / / | |
67 # o / / (2) collapse | |
68 # |/ / | |
69 # o / (1) collapse | |
70 # |/ | |
71 # o (0) root | |
72 | |
73 set -e | |
74 | |
75 commit() | |
76 { | |
77 rev=$1 | |
78 msg=$2 | |
79 shift 2 | |
80 if [ "$#" -gt 0 ]; then | |
81 hg debugsetparents "$@" | |
82 fi | |
83 echo $rev > $rev | |
84 hg add $rev | |
85 hg ci -d "$rev 0" -m "($rev) $msg" | |
86 } | |
87 | |
88 echo "[extensions]" >> $HGRCPATH | |
89 echo "graphlog=" >> $HGRCPATH | |
90 | |
91 echo % init | |
92 hg init repo | |
93 | |
94 cd repo | |
95 | |
96 echo % empty repo | |
97 hg glog | |
98 | |
99 echo % building tree | |
100 commit 0 "root" | |
101 commit 1 "collapse" 0 | |
102 commit 2 "collapse" 1 | |
103 commit 3 "collapse" 2 | |
104 commit 4 "merge two known; one immediate left, one immediate right" 1 3 | |
105 commit 5 "expand" 3 4 | |
106 commit 6 "merge two known; one immediate left, one far left" 2 5 | |
107 commit 7 "expand" 2 5 | |
108 commit 8 "merge two known; one immediate left, one far right" 0 7 | |
109 commit 9 "expand" 7 8 | |
110 commit 10 "merge two known; one immediate left, one near right" 0 6 | |
111 commit 11 "expand" 6 10 | |
112 commit 12 "merge two known; one immediate right, one far left" 1 9 | |
113 commit 13 "expand" 9 11 | |
114 commit 14 "merge two known; one immediate right, one far right" 0 12 | |
115 commit 15 "expand" 13 14 | |
116 commit 16 "merge two known; one immediate right, one near right" 0 1 | |
117 commit 17 "expand" 12 16 | |
118 commit 18 "merge two known; two far left" 1 15 | |
119 commit 19 "expand" 15 17 | |
120 commit 20 "merge two known; two far right" 0 18 | |
121 commit 21 "expand" 19 20 | |
122 commit 22 "merge two known; one far left, one far right" 18 21 | |
123 commit 23 "merge one known; immediate left" 1 22 | |
124 commit 24 "merge one known; immediate right" 0 23 | |
125 commit 25 "merge one known; far left" 21 24 | |
126 commit 26 "merge one known; far right" 18 25 | |
127 commit 27 "collapse" 21 | |
128 commit 28 "merge zero known" 1 26 | |
129 commit 29 "regular commit" 0 | |
130 commit 30 "expand" 28 29 | |
131 commit 31 "expand" 21 30 | |
132 commit 32 "expand" 27 31 | |
133 commit 33 "head" 18 | |
134 commit 34 "head" 32 | |
135 | |
136 echo % glog -q | |
137 hg glog -q | |
138 | |
139 echo % glog | |
140 hg glog | |
4735
8d4fac0a9df7
Make hg glog abort if unused arguments are given.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4340
diff
changeset
|
141 |
8d4fac0a9df7
Make hg glog abort if unused arguments are given.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4340
diff
changeset
|
142 echo % unused arguments |
8d4fac0a9df7
Make hg glog abort if unused arguments are given.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4340
diff
changeset
|
143 hg glog -q foo || echo failed |