##// END OF EJS Templates
convert: fix bad conversion of copies when hg.startrev is specified...
convert: fix bad conversion of copies when hg.startrev is specified The 'copynode' was looked up in self.keep as if it was a changeset node. It is however a filelog node, and self.keep would thus fail if it actually looked at its parameter ... which it only did if a startrev was specified. Instead we now don't check the copy node - we don't have to. It must have been copied from one of the parents, and we already check whether one of the parents have the copy source. We could perhaps use linkrev to see if the corresponding changeset was converted ... but that would sometimes be wrong. The existing test of this was wrong - now it is better, but it seems like it exposes a 'log' issue.

File last commit:

r19457:948df0f1 default
r19457:948df0f1 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 ..