##// END OF EJS Templates
shelve: add a shelve extension to save/restore working changes...
shelve: add a shelve extension to save/restore working changes This extension saves shelved changes using a temporary draft commit, and bundles the temporary commit and its draft ancestors, then strips them. This strategy makes it possible to use Mercurial's bundle and merge machinery to resolve conflicts if necessary when unshelving, even when the destination commit or its ancestors have been amended, squashed, or evolved. (Once a change has been unshelved, its associated unbundled commits are either rolled back or stripped.) Storing the shelved change as a bundle also avoids the difficulty that hidden commits would cause, of making it impossible to amend the parent if it is a draft commits (a common scenario). Although this extension shares its name and some functionality with the third party hgshelve extension, it has little else in common. Notably, the hgshelve extension shelves changes as unified diffs, which makes conflict resolution a matter of finding .rej files and conflict markers, and cleaning up the mess by hand. We do not yet allow hunk-level choosing of changes to record. Compared to the hgshelve extension, this is a small regression in usability, but we hope to integrate that at a later point, once the record machinery becomes more reusable and robust.

File last commit:

r19457:948df0f1 default
r19854:49d4919d default
Show More
test-convert-hg-startrev.t
185 lines | 3.7 KiB | text/troff | Tads3Lexer
/ tests / test-convert-hg-startrev.t
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Martin Geisler
tests: don't overwrite HGRCPATH...
r13519 $ cat >> $HGRCPATH <<EOF
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 > [extensions]
> graphlog =
> convert =
Dan Villiom Podlaski Christiansen
test-convert-hg-startrev: enable convert.hg.saverev.
r12350 > [convert]
> hg.saverev = yes
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 > EOF
$ glog()
> {
> hg -R "$1" glog --template '{rev} "{desc}" files: {files}\n'
> }
$ hg init source
$ cd source
$ echo a > a
$ echo b > b
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 $ echo f > f
$ hg ci -d '0 0' -qAm '0: add a b f'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 $ echo c > c
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 $ hg move f d
$ hg ci -d '1 0' -qAm '1: add c, move f to d'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 $ hg copy a e
$ echo b >> b
$ hg ci -d '2 0' -qAm '2: copy e from a, change b'
$ hg up -C 0
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 $ echo a >> a
$ hg ci -d '3 0' -qAm '3: change a'
$ hg merge
merging a and e to e
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 3 files updated, 1 files merged, 1 files removed, 0 files unresolved
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 (branch merge, don't forget to commit)
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 $ hg ci -d '4 0' -qAm '4: merge 2 and 3'
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 $ echo a >> a
$ hg ci -d '5 0' -qAm '5: change a'
$ cd ..
Convert from null revision
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 $ hg convert --config convert.hg.startrev=null source full
initializing destination full repository
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 scanning source...
sorting...
converting...
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 5 0: add a b f
4 1: add c, move f to d
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 3 2: copy e from a, change b
2 3: change a
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 1 4: merge 2 and 3
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 0 5: change a
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 $ glog full
o 5 "5: change a" files: a
|
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 4 "4: merge 2 and 3" files: e f
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 |\
| o 3 "3: change a" files: a
| |
o | 2 "2: copy e from a, change b" files: b e
| |
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o | 1 "1: add c, move f to d" files: c d f
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950 |/
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 0 "0: add a b f" files: a b f
Nicolas Dumazet
revlog: fix descendants() if nullrev is in revs...
r12950
$ rm -Rf full
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Convert from zero revision
$ hg convert --config convert.hg.startrev=0 source full
initializing destination full repository
scanning source...
sorting...
converting...
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 5 0: add a b f
4 1: add c, move f to d
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 3 2: copy e from a, change b
2 3: change a
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 1 4: merge 2 and 3
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 0 5: change a
$ glog full
o 5 "5: change a" files: a
|
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 4 "4: merge 2 and 3" files: e f
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 |\
| o 3 "3: change a" files: a
| |
o | 2 "2: copy e from a, change b" files: b e
| |
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o | 1 "1: add c, move f to d" files: c d f
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 |/
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 0 "0: add a b f" files: a b f
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Convert from merge parent
$ hg convert --config convert.hg.startrev=1 source conv1
initializing destination conv1 repository
scanning source...
sorting...
converting...
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 3 1: add c, move f to d
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 2 2: copy e from a, change b
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 1 4: merge 2 and 3
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 0 5: change a
$ glog conv1
o 3 "5: change a" files: a
|
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 2 "4: merge 2 and 3" files: a e
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 |
o 1 "2: copy e from a, change b" files: b e
|
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 0 "1: add c, move f to d" files: a b c d
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
$ cd conv1
Patrick Mezard
log: fix --follow FILE ancestry calculation...
r16165 $ hg up -q
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Check copy preservation
Mads Kiilerich
convert: fix bad conversion of copies when hg.startrev is specified...
r19457 $ hg st -C --change 2 e
M e
$ hg st -C --change 1 e
A e
a
$ hg st -C --change 0 a
A a
(It seems like a bug in log that the following doesn't show rev 1.)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 $ hg log --follow --copies e
Mads Kiilerich
convert: fix bad conversion of copies when hg.startrev is specified...
r19457 changeset: 2:82bbac3d2cf4
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 user: test
date: Thu Jan 01 00:00:04 1970 +0000
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 summary: 4: merge 2 and 3
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Mads Kiilerich
convert: fix bad conversion of copies when hg.startrev is specified...
r19457 changeset: 0:23c3be426dce
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 user: test
Mads Kiilerich
convert: fix bad conversion of copies when hg.startrev is specified...
r19457 date: Thu Jan 01 00:00:01 1970 +0000
summary: 1: add c, move f to d
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
Check copy removal on missing parent
$ hg log --follow --copies d
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 changeset: 0:23c3be426dce
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 user: test
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 date: Thu Jan 01 00:00:01 1970 +0000
summary: 1: add c, move f to d
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
$ hg cat -r tip a b
a
a
a
b
b
$ hg -q verify
$ cd ..
Convert from merge
$ hg convert --config convert.hg.startrev=4 source conv4
initializing destination conv4 repository
scanning source...
sorting...
converting...
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 1 4: merge 2 and 3
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148 0 5: change a
$ glog conv4
o 1 "5: change a" files: a
|
Mads Kiilerich
test-convert-hg-startrev: fix test for copy removal on missing parent...
r19456 o 0 "4: merge 2 and 3" files: a b c d e
Dan Villiom Podlaski Christiansen
tests: unify test-convert-hg-startrev.
r12148
$ cd conv4
$ hg up -C
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg cat -r tip a b
a
a
a
b
b
$ hg -q verify
$ cd ..