##// END OF EJS Templates
transplant: restore dirstate correctly at unexpected failure...
transplant: restore dirstate correctly at unexpected failure Before this patch, transplant can't restore dirstate as expected at failure other than one while patching. This causes: - unexpected file status - dirstate refers already rollback-ed parent (only at failure of transplanting the 2nd or later revision) To restore dirstate correctly also at unexpected failure, this patch encloses scope of store lock and transaction by 'dirstateguard'. This is temporary fixing for stable branch. See DirstateTransactionPlan wiki page for detail about the future plan to treat dirstate consistently around scope boundary of transaction. https://mercurial.selenic.com/wiki/DirstateTransactionPlan This patch also adds 'if lock' examination for safety 'lock.release()', because creating 'dirstateguard' object may fail unexpectedly (e.g. IOError for saving dirstate). BTW, in the test script, putting section header '[extensions]' into '.hg/hgrc' is needed to fix incomplete disabling 'abort' extension at 4d1382fd96ff.

File last commit:

r25472:4d2b9b30 default
r25879:99e88320 stable
Show More
test-mq-symlinks.t
111 lines | 1.7 KiB | text/troff | Tads3Lexer
/ tests / test-mq-symlinks.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require symlink
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ hg qinit
$ hg qnew base.patch
$ echo aaa > a
$ echo bbb > b
$ echo ccc > c
$ hg add a b c
$ hg qrefresh
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> a not a symlink
test replacing a file with a symlink
$ hg qnew symlink.patch
$ rm a
$ ln -s b a
$ hg qrefresh --git
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> b
$ hg qpop
popping symlink.patch
now at: base.patch
$ hg qpush
applying symlink.patch
now at: symlink.patch
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> b
test updating a symlink
$ rm a
$ ln -s c a
$ hg qnew --git -f updatelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> c
$ hg qpop
popping updatelink
now at: symlink.patch
$ hg qpush --debug
applying updatelink
patching file a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 now at: updatelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> c
$ hg st
test replacing a symlink with a file
$ ln -s c s
$ hg add s
$ hg qnew --git -f addlink
$ rm s
$ echo sss > s
$ hg qnew --git -f replacelinkwithfile
$ hg qpop
popping replacelinkwithfile
now at: addlink
$ hg qpush
applying replacelinkwithfile
now at: replacelinkwithfile
$ cat s
sss
$ hg st
test symlink removal
$ hg qnew removesl.patch
$ hg rm a
$ hg qrefresh --git
$ hg qpop
popping removesl.patch
now at: replacelinkwithfile
$ hg qpush
applying removesl.patch
now at: removesl.patch
$ hg st -c
C b
C c
C s
Patrick Mezard
Merge with stable
r12345
replace broken symlink with another broken symlink
$ ln -s linka linka
$ hg add linka
$ hg qnew link
$ hg mv linka linkb
Mads Kiilerich
merge with stable
r12398 $ rm linkb
$ ln -s linkb linkb
Patrick Mezard
Merge with stable
r12345 $ hg qnew movelink
$ hg qpop
popping movelink
now at: link
$ hg qpush
applying movelink
now at: movelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py linkb
Patrick Mezard
Merge with stable
r12345 linkb -> linkb