Mercurial > hg
annotate tests/test-graft.t @ 16509:eab9119c5dee stable
rebase: skip resolved but emptied revisions
When rebasing, if a conflict occurs and is resolved in a way the rebased
revision becomes empty, it is not skipped, unlike revisions being emptied
without conflicts.
The reason is:
- File 'x' is merged and resolved, merge.update() marks it as 'm' in the
dirstate.
- rebase.concludenode() calls localrepo.commit(), which calls
localrepo.status() which calls dirstate.status(). 'x' shows up as 'm' and is
unconditionnally added to the modified files list, instead of being checked
again.
- localrepo.commit() detects 'x' as changed an create a new revision where only
the manifest parents and linkrev differ.
Marking 'x' as modified without checking it makes sense for regular merges. But
in rebase case, the merge looks normal but the second parent is usually
discarded. When this happens, 'm' files in dirstate are a bit irrelevant and
should be considered 'n' possibly dirty instead. That is what the current patch
does.
Another approach, maybe more efficient, would be to pass another flag to
merge.update() saying the 'branchmerge' is a bit of a lie and recordupdate()
should call dirstate.normallookup() instead of merge().
It is also tempting to add this logic to dirstate.setparents(), moving from two
to one parent is what invalidates the 'm' markers. But this is a far bigger
change to make.
v2: succumb to the temptation and move the logic in dirstate.setparents(). mpm
suggested trying _filecommit() first but it is called by commitctx() which
knows nothing about the dirstate and comes too late into the game. A second
approach was to rewrite the 'm' state into 'n' on the fly in dirstate.status()
which failed for graft in the following case:
$ hg init repo
$ cd repo
$ echo a > a
$ hg ci -qAm0
$ echo a >> a
$ hg ci -m1
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg mv a b
$ echo c > b
$ hg ci -m2
created new head
$ hg graft 1 --tool internal:local
grafting revision 1
$ hg --config extensions.graphlog= glog --template '{rev} {desc|firstline}\n'
@ 3 1
|
o 2 2
|
| o 1 1
|/
o 0 0
$ hg log -r 3 --debug --patch --git --copies
changeset: 3:19cd7d1417952af13161b94c32e901769104560c
tag: tip
phase: draft
parent: 2:b5c505595c9e9a12d5dd457919c143e05fc16fb8
parent: -1:0000000000000000000000000000000000000000
manifest: 3:3d27ce8d02241aa59b60804805edf103c5c0cda4
user: test
date: Thu Jan 01 00:00:00 1970 +0000
extra: branch=default
extra: source=a03df74c41413a75c0a42997fc36c2de97b26658
description:
1
Here, revision 3 is created because there is a copy record for 'b' in the
dirstate and thus 'b' is considered modified. But this information is discarded
at commit time since 'b' content is unchanged. I do not know if discarding this
information is correct or not, but at this time we cannot represent it anyway.
This patch therefore implements the last solution of moving the logic into
dirstate.setparents(). It does not sound crazy as 'm' files makes no sense with
only one parent. It also makes dirstate.merge() calls .lookupnormal() if there
is one parent, to preserve the invariant.
I am a bit concerned about introducing this kind of stateful behaviour to
existing code which historically treated setparents() as a basic setter without
side-effects. And doing that during the code freeze.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sun, 22 Apr 2012 20:06:36 +0200 |
parents | 475de53c08f4 |
children | b54f3c502e63 52ea9ce5b641 |
rev | line source |
---|---|
15361 | 1 Create a repo with some stuff in it: |
2 | |
3 $ hg init a | |
4 $ cd a | |
5 $ echo a > a | |
6 $ echo a > d | |
7 $ echo a > e | |
8 $ hg ci -qAm0 | |
9 $ echo b > a | |
10 $ hg ci -m1 -u bar | |
11 $ hg mv a b | |
12 $ hg ci -m2 | |
13 $ hg cp b c | |
14 $ hg ci -m3 -u baz | |
15 $ echo b > d | |
16 $ echo f > e | |
17 $ hg ci -m4 | |
18 $ hg up -q 3 | |
19 $ echo b > e | |
20 $ hg branch -q stable | |
21 $ hg ci -m5 | |
22 $ hg merge -q default --tool internal:local | |
23 $ hg branch -q default | |
24 $ hg ci -m6 | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
25 $ hg phase --public 3 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
26 $ hg phase --force --secret 6 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
27 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
28 $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n' |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
29 @ test@6.secret: 6 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
30 |\ |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
31 | o test@5.draft: 5 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
32 | | |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
33 o | test@4.draft: 4 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
34 |/ |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
35 o baz@3.public: 3 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
36 | |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
37 o test@2.public: 2 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
38 | |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
39 o bar@1.public: 1 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
40 | |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
41 o test@0.public: 0 |
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
42 |
15361 | 43 |
44 Need to specify a rev: | |
45 | |
46 $ hg graft | |
47 abort: no revisions specified | |
48 [255] | |
49 | |
50 Can't graft ancestor: | |
51 | |
52 $ hg graft 1 2 | |
53 skipping ancestor revision 1 | |
54 skipping ancestor revision 2 | |
55 [255] | |
56 | |
57 Can't graft with dirty wd: | |
58 | |
59 $ hg up -q 0 | |
60 $ echo foo > a | |
61 $ hg graft 1 | |
62 abort: outstanding uncommitted changes | |
63 [255] | |
64 $ hg revert a | |
65 | |
66 Graft a rename: | |
67 | |
68 $ hg graft 2 -u foo | |
69 grafting revision 2 | |
70 merging a and b to b | |
71 $ hg export tip --git | |
72 # HG changeset patch | |
73 # User foo | |
74 # Date 0 0 | |
75 # Node ID d2e44c99fd3f31c176ea4efb9eca9f6306c81756 | |
76 # Parent 68795b066622ca79a25816a662041d8f78f3cd9e | |
77 2 | |
78 | |
79 diff --git a/a b/b | |
80 rename from a | |
81 rename to b | |
82 --- a/a | |
83 +++ b/b | |
84 @@ -1,1 +1,1 @@ | |
85 -a | |
86 +b | |
87 | |
88 Look for extra:source | |
89 | |
90 $ hg log --debug -r tip | |
91 changeset: 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756 | |
92 tag: tip | |
15907
51fc43253a52
changeset_printer: display changeset phase on debug level
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15777
diff
changeset
|
93 phase: draft |
15361 | 94 parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e |
95 parent: -1:0000000000000000000000000000000000000000 | |
96 manifest: 7:5d59766436fd8fbcd38e7bebef0f6eaf3eebe637 | |
97 user: foo | |
98 date: Thu Jan 01 00:00:00 1970 +0000 | |
99 files+: b | |
100 files-: a | |
101 extra: branch=default | |
102 extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
103 description: | |
104 2 | |
105 | |
106 | |
107 | |
108 Graft out of order, skipping a merge and a duplicate | |
109 | |
16389
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
110 $ hg graft 1 5 4 3 'merge()' 2 -n |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
111 skipping ungraftable merge revision 6 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
112 skipping already grafted revision 2 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
113 grafting revision 1 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
114 grafting revision 5 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
115 grafting revision 4 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
116 grafting revision 3 |
79fecd735d26
graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com>
parents:
16094
diff
changeset
|
117 |
15361 | 118 $ hg graft 1 5 4 3 'merge()' 2 --debug |
119 skipping ungraftable merge revision 6 | |
120 scanning for duplicate grafts | |
121 skipping already grafted revision 2 | |
122 grafting revision 1 | |
123 searching for copies back to rev 1 | |
124 unmatched files in local: | |
125 b | |
126 all copies found (* = to merge, ! = divergent): | |
127 b -> a * | |
128 checking for directory renames | |
129 resolving manifests | |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15513
diff
changeset
|
130 overwrite: False, partial: False |
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15513
diff
changeset
|
131 ancestor: 68795b066622, local: d2e44c99fd3f+, remote: 5d205f8b35b6 |
15361 | 132 b: local copied/moved to a -> m |
133 preserving b for resolve of b | |
134 updating: b 1/1 files (100.00%) | |
135 grafting revision 5 | |
136 searching for copies back to rev 1 | |
137 resolving manifests | |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15513
diff
changeset
|
138 overwrite: False, partial: False |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
139 ancestor: 4c60f11aa304, local: d2e44c99fd3f+, remote: 97f8bfe72746 |
15361 | 140 e: remote is newer -> g |
141 updating: e 1/1 files (100.00%) | |
142 getting e | |
143 e | |
144 grafting revision 4 | |
145 searching for copies back to rev 1 | |
146 resolving manifests | |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15513
diff
changeset
|
147 overwrite: False, partial: False |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
148 ancestor: 4c60f11aa304, local: 839a7e8fcf80+, remote: 9c233e8e184d |
15361 | 149 e: versions differ -> m |
150 d: remote is newer -> g | |
151 preserving e for resolve of e | |
152 updating: d 1/2 files (50.00%) | |
153 getting d | |
154 updating: e 2/2 files (100.00%) | |
155 picked tool 'internal:merge' for e (binary False symlink False) | |
156 merging e | |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
157 my e@839a7e8fcf80+ other e@9c233e8e184d ancestor e@68795b066622 |
15361 | 158 warning: conflicts during merge. |
15501
2371f4aea665
merge: give a special message for internal:merge failure (issue3105)
Matt Mackall <mpm@selenic.com>
parents:
15361
diff
changeset
|
159 merging e incomplete! (edit conflicts, then use 'hg resolve --mark') |
15361 | 160 abort: unresolved conflicts, can't continue |
161 (use hg resolve and hg graft --continue) | |
162 [255] | |
163 | |
164 Continue without resolve should fail: | |
165 | |
166 $ hg graft -c | |
167 grafting revision 4 | |
168 abort: unresolved merge conflicts (see hg help resolve) | |
169 [255] | |
170 | |
171 Fix up: | |
172 | |
173 $ echo b > e | |
174 $ hg resolve -m e | |
175 | |
176 Continue with a revision should fail: | |
177 | |
178 $ hg graft -c 6 | |
179 abort: can't specify --continue and revisions | |
180 [255] | |
181 | |
182 Continue for real, clobber usernames | |
183 | |
184 $ hg graft -c -U | |
185 grafting revision 4 | |
186 grafting revision 3 | |
187 | |
188 Compare with original: | |
189 | |
190 $ hg diff -r 6 | |
191 $ hg status --rev 0:. -C | |
192 M d | |
193 M e | |
194 A b | |
195 a | |
196 A c | |
197 a | |
198 R a | |
199 | |
200 View graph: | |
201 | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
202 $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n' |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
203 @ test@10.draft: 3 |
15361 | 204 | |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
205 o test@9.draft: 4 |
15361 | 206 | |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
207 o test@8.draft: 5 |
15361 | 208 | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
209 o foo@7.draft: 2 |
15361 | 210 | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
211 | o test@6.secret: 6 |
15361 | 212 | |\ |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
213 | | o test@5.draft: 5 |
15361 | 214 | | | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
215 | o | test@4.draft: 4 |
15361 | 216 | |/ |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
217 | o baz@3.public: 3 |
15361 | 218 | | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
219 | o test@2.public: 2 |
15361 | 220 | | |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
221 | o bar@1.public: 1 |
15361 | 222 |/ |
15918
4f9853e7f690
graft: add test to check the phase of new changesets
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
15907
diff
changeset
|
223 o test@0.public: 0 |
15361 | 224 |
15506
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
225 Graft again onto another branch should preserve the original source |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
226 $ hg up -q 0 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
227 $ echo 'g'>g |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
228 $ hg add g |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
229 $ hg ci -m 7 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
230 created new head |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
231 $ hg graft 7 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
232 grafting revision 7 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
233 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
234 $ hg log -r 7 --template '{rev}:{node}\n' |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
235 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
236 $ hg log -r 2 --template '{rev}:{node}\n' |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
237 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
238 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
239 $ hg log --debug -r tip |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
240 changeset: 12:95adbe5de6b10f376b699ece9ed5a57cd7b4b0f6 |
15506
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
241 tag: tip |
15907
51fc43253a52
changeset_printer: display changeset phase on debug level
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15777
diff
changeset
|
242 phase: draft |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
243 parent: 11:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f |
15506
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
244 parent: -1:0000000000000000000000000000000000000000 |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
245 manifest: 12:9944044f82a462bbaccc9bdf7e0ac5b811db7d1b |
15506
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
246 user: foo |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
247 date: Thu Jan 01 00:00:00 1970 +0000 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
248 files+: b |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
249 files-: a |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
250 extra: branch=default |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
251 extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
252 description: |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
253 2 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
254 |
dc9fb7015d7f
graft: preserve original source in subsequent grafts
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15361
diff
changeset
|
255 |
15508
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
256 Disallow grafting an already grafted cset onto its original branch |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
257 $ hg up -q 6 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
258 $ hg graft 7 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
259 skipping already grafted revision 7 (was grafted from 2) |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
260 [255] |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
261 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
262 Disallow grafting already grafted csets with the same origin onto each other |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
263 $ hg up -q 12 |
15508
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
264 $ hg graft 2 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
265 skipping already grafted revision 2 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
266 [255] |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
267 $ hg graft 7 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
268 skipping already grafted revision 7 (same origin 2) |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
269 [255] |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
270 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
271 $ hg up -q 7 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
272 $ hg graft 2 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
273 skipping already grafted revision 2 |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
274 [255] |
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
275 $ hg graft tip |
16509
eab9119c5dee
rebase: skip resolved but emptied revisions
Patrick Mezard <patrick@mezard.eu>
parents:
16508
diff
changeset
|
276 skipping already grafted revision 12 (same origin 2) |
15508
00276525e2b7
graft: disallow grafting grafted csets in specific situations (issue3091)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
15507
diff
changeset
|
277 [255] |