15 $ hg init source |
15 $ hg init source |
16 $ cd source |
16 $ cd source |
17 |
17 |
18 $ echo a > a |
18 $ echo a > a |
19 $ echo b > b |
19 $ echo b > b |
20 $ hg ci -d '0 0' -qAm '0: add a b' |
20 $ echo f > f |
|
21 $ hg ci -d '0 0' -qAm '0: add a b f' |
21 $ echo c > c |
22 $ echo c > c |
22 $ hg ci -d '1 0' -qAm '1: add c' |
23 $ hg move f d |
|
24 $ hg ci -d '1 0' -qAm '1: add c, move f to d' |
23 $ hg copy a e |
25 $ hg copy a e |
24 $ echo b >> b |
26 $ echo b >> b |
25 $ hg ci -d '2 0' -qAm '2: copy e from a, change b' |
27 $ hg ci -d '2 0' -qAm '2: copy e from a, change b' |
26 $ hg up -C 0 |
28 $ hg up -C 0 |
27 1 files updated, 0 files merged, 2 files removed, 0 files unresolved |
29 2 files updated, 0 files merged, 3 files removed, 0 files unresolved |
28 $ echo a >> a |
30 $ echo a >> a |
29 $ hg ci -d '3 0' -qAm '3: change a' |
31 $ hg ci -d '3 0' -qAm '3: change a' |
30 $ hg merge |
32 $ hg merge |
31 merging a and e to e |
33 merging a and e to e |
32 2 files updated, 1 files merged, 0 files removed, 0 files unresolved |
34 3 files updated, 1 files merged, 1 files removed, 0 files unresolved |
33 (branch merge, don't forget to commit) |
35 (branch merge, don't forget to commit) |
34 $ hg copy b d |
36 $ hg ci -d '4 0' -qAm '4: merge 2 and 3' |
35 $ hg ci -d '4 0' -qAm '4: merge 2 and 3, copy d from b' |
|
36 $ echo a >> a |
37 $ echo a >> a |
37 $ hg ci -d '5 0' -qAm '5: change a' |
38 $ hg ci -d '5 0' -qAm '5: change a' |
38 $ cd .. |
39 $ cd .. |
39 |
40 |
40 Convert from null revision |
41 Convert from null revision |
42 $ hg convert --config convert.hg.startrev=null source full |
43 $ hg convert --config convert.hg.startrev=null source full |
43 initializing destination full repository |
44 initializing destination full repository |
44 scanning source... |
45 scanning source... |
45 sorting... |
46 sorting... |
46 converting... |
47 converting... |
47 5 0: add a b |
48 5 0: add a b f |
48 4 1: add c |
49 4 1: add c, move f to d |
49 3 2: copy e from a, change b |
50 3 2: copy e from a, change b |
50 2 3: change a |
51 2 3: change a |
51 1 4: merge 2 and 3, copy d from b |
52 1 4: merge 2 and 3 |
52 0 5: change a |
53 0 5: change a |
53 |
54 |
54 $ glog full |
55 $ glog full |
55 o 5 "5: change a" files: a |
56 o 5 "5: change a" files: a |
56 | |
57 | |
57 o 4 "4: merge 2 and 3, copy d from b" files: d e |
58 o 4 "4: merge 2 and 3" files: e f |
58 |\ |
59 |\ |
59 | o 3 "3: change a" files: a |
60 | o 3 "3: change a" files: a |
60 | | |
61 | | |
61 o | 2 "2: copy e from a, change b" files: b e |
62 o | 2 "2: copy e from a, change b" files: b e |
62 | | |
63 | | |
63 o | 1 "1: add c" files: c |
64 o | 1 "1: add c, move f to d" files: c d f |
64 |/ |
65 |/ |
65 o 0 "0: add a b" files: a b |
66 o 0 "0: add a b f" files: a b f |
66 |
67 |
67 $ rm -Rf full |
68 $ rm -Rf full |
68 |
69 |
69 Convert from zero revision |
70 Convert from zero revision |
70 |
71 |
71 $ hg convert --config convert.hg.startrev=0 source full |
72 $ hg convert --config convert.hg.startrev=0 source full |
72 initializing destination full repository |
73 initializing destination full repository |
73 scanning source... |
74 scanning source... |
74 sorting... |
75 sorting... |
75 converting... |
76 converting... |
76 5 0: add a b |
77 5 0: add a b f |
77 4 1: add c |
78 4 1: add c, move f to d |
78 3 2: copy e from a, change b |
79 3 2: copy e from a, change b |
79 2 3: change a |
80 2 3: change a |
80 1 4: merge 2 and 3, copy d from b |
81 1 4: merge 2 and 3 |
81 0 5: change a |
82 0 5: change a |
82 |
83 |
83 $ glog full |
84 $ glog full |
84 o 5 "5: change a" files: a |
85 o 5 "5: change a" files: a |
85 | |
86 | |
86 o 4 "4: merge 2 and 3, copy d from b" files: d e |
87 o 4 "4: merge 2 and 3" files: e f |
87 |\ |
88 |\ |
88 | o 3 "3: change a" files: a |
89 | o 3 "3: change a" files: a |
89 | | |
90 | | |
90 o | 2 "2: copy e from a, change b" files: b e |
91 o | 2 "2: copy e from a, change b" files: b e |
91 | | |
92 | | |
92 o | 1 "1: add c" files: c |
93 o | 1 "1: add c, move f to d" files: c d f |
93 |/ |
94 |/ |
94 o 0 "0: add a b" files: a b |
95 o 0 "0: add a b f" files: a b f |
95 |
96 |
96 Convert from merge parent |
97 Convert from merge parent |
97 |
98 |
98 $ hg convert --config convert.hg.startrev=1 source conv1 |
99 $ hg convert --config convert.hg.startrev=1 source conv1 |
99 initializing destination conv1 repository |
100 initializing destination conv1 repository |
100 scanning source... |
101 scanning source... |
101 sorting... |
102 sorting... |
102 converting... |
103 converting... |
103 3 1: add c |
104 3 1: add c, move f to d |
104 2 2: copy e from a, change b |
105 2 2: copy e from a, change b |
105 1 4: merge 2 and 3, copy d from b |
106 1 4: merge 2 and 3 |
106 0 5: change a |
107 0 5: change a |
107 |
108 |
108 $ glog conv1 |
109 $ glog conv1 |
109 o 3 "5: change a" files: a |
110 o 3 "5: change a" files: a |
110 | |
111 | |
111 o 2 "4: merge 2 and 3, copy d from b" files: a d e |
112 o 2 "4: merge 2 and 3" files: a e |
112 | |
113 | |
113 o 1 "2: copy e from a, change b" files: b e |
114 o 1 "2: copy e from a, change b" files: b e |
114 | |
115 | |
115 o 0 "1: add c" files: a b c |
116 o 0 "1: add c, move f to d" files: a b c d |
116 |
117 |
117 $ cd conv1 |
118 $ cd conv1 |
118 $ hg up -q |
119 $ hg up -q |
119 |
120 |
120 Check copy preservation |
121 Check copy preservation |
121 |
122 |
122 $ hg log --follow --copies e |
123 $ hg log --follow --copies e |
123 changeset: 2:79818a521a40 |
124 changeset: 2:60633ee11cfa |
124 user: test |
125 user: test |
125 date: Thu Jan 01 00:00:04 1970 +0000 |
126 date: Thu Jan 01 00:00:04 1970 +0000 |
126 summary: 4: merge 2 and 3, copy d from b |
127 summary: 4: merge 2 and 3 |
127 |
128 |
128 changeset: 1:3e6201832cce |
129 changeset: 1:d56e8baefff8 |
129 user: test |
130 user: test |
130 date: Thu Jan 01 00:00:02 1970 +0000 |
131 date: Thu Jan 01 00:00:02 1970 +0000 |
131 summary: 2: copy e from a, change b |
132 summary: 2: copy e from a, change b |
132 |
133 |
133 Check copy removal on missing parent |
134 Check copy removal on missing parent |
134 |
135 |
135 $ hg log --follow --copies d |
136 $ hg log --follow --copies d |
136 changeset: 2:79818a521a40 |
137 changeset: 0:23c3be426dce |
137 user: test |
138 user: test |
138 date: Thu Jan 01 00:00:04 1970 +0000 |
139 date: Thu Jan 01 00:00:01 1970 +0000 |
139 summary: 4: merge 2 and 3, copy d from b |
140 summary: 1: add c, move f to d |
140 |
141 |
141 $ hg cat -r tip a b |
142 $ hg cat -r tip a b |
142 a |
143 a |
143 a |
144 a |
144 a |
145 a |