##// END OF EJS Templates
localrepo: make journal.dirstate contain in-memory changes before transaction...
localrepo: make journal.dirstate contain in-memory changes before transaction Before this patch, in-memory dirstate changes aren't written out at opening transaction, even though 'journal.dirstate' is created directly from '.hg/dirstate'. Therefore, subsequent 'hg rollback' uses incomplete 'undo.dirstate' to restore dirstate, if dirstate is changed and isn't written out before opening transaction. In cases below, the condition "dirstate is changed and isn't written out before opening transaction" isn't satisfied and this problem doesn't appear: - "wlock scope" and "transaction scope" are almost equivalent e.g. 'commit --amend', 'import' and so on - dirstate changes are written out before opening transaction e.g. 'rebase' (via 'dirstateguard') and 'commit -A' (by separated wlock scopes) On the other hand, 'backout' may satisfy the condition above. To make 'journal.dirstate' contain in-memory changes before opening transaction, this patch explicitly invokes 'dirstate.write()' in 'localrepository.transaction()'. 'dirstate.write()' is placed before not "writing journal files out" but "invoking pretxnopen hooks" for visibility of dirstate changes to external hook processes. BTW, in the test script, 'touch -t 200001010000' and 'hg status' are invoked to make file 'c' surely clean in dirstate, because "clean but unsure" files indirectly cause 'dirstate.write()' at 'repo.status()' in 'repo.commit()' (see fe03f522dda9 for detail) and prevents from certainly reproducing the issue.

File last commit:

r25474:8c14f87b default
r25878:800e090e stable
Show More
test-bad-pull.t
21 lines | 437 B | text/troff | Tads3Lexer
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 #require serve killdaemons
Mads Kiilerich
tests: use 'hghave serve' to guard tests that requires serve daemon management
r15446
Adrian Buehlmann
test-bad-pull: partially adjust for Windows...
r17019 #if windows
$ hg clone http://localhost:$HGPORT/ copy
abort: * (glob)
[255]
#else
Martin Geisler
tests: unify test-bad-pull
r11859 $ hg clone http://localhost:$HGPORT/ copy
abort: error: Connection refused
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
test-bad-pull: partially adjust for Windows...
r17019 #endif
Martin Geisler
tests: unify test-bad-pull
r11859
Mads Kiilerich
tests: remove hacks for testing if file or directory exists
r15515 $ test -d copy
[1]
Martin Geisler
tests: unify test-bad-pull
r11859
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 $ python "$TESTDIR/dumbhttp.py" -p $HGPORT --pid dumb.pid
$ cat dumb.pid >> $DAEMON_PIDS
Matt Mackall
tests: fix shutdown race in test-bad-pull
r16334 $ hg clone http://localhost:$HGPORT/foo copy2
abort: HTTP Error 404: * (glob)
[255]
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py