##// END OF EJS Templates
hg: acquire wlock while updating the working directory via updatetotally...
hg: acquire wlock while updating the working directory via updatetotally updatetotally() might be invoked outside wlock scope (e.g. invocation via postincoming() at "hg unbundle" or "hg pull"). In such case, acquisition of wlock is needed for consistent view, because parallel "hg update" and/or "hg bookmarks" might change working directory status while executing updatetotally(). Strictly speaking, truly consistent updating should acquire also store lock, because active bookmark might be moved to another one outside wlock scope (e.g. pulling from other repository causes updating current active one). Acquisition of wlock in this patch ensures consistency in as same level as past "hg update".

File last commit:

r28114:2a03a365 default
r28503:138ec883 default
Show More
test-push-validation.t
92 lines | 1.9 KiB | text/troff | Tads3Lexer
/ tests / test-push-validation.t
Adrian Buehlmann
combine tests
r12279 $ hg init test
$ cd test
$ cat > .hg/hgrc <<EOF
> [server]
> validate=1
> EOF
$ echo alpha > alpha
$ echo beta > beta
$ hg addr
adding alpha
adding beta
$ hg ci -m 1
$ cd ..
$ hg clone test test-clone
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Sune Foldager
validate: check for spurious incoming filelog entries...
r18422 Test spurious filelog entries:
Adrian Buehlmann
combine tests
r12279 $ cd test-clone
Sune Foldager
validate: check for spurious incoming filelog entries...
r18422 $ echo blah >> beta
$ cp .hg/store/data/beta.i tmp1
$ hg ci -m 2
$ cp .hg/store/data/beta.i tmp2
$ hg -q rollback
$ mv tmp2 .hg/store/data/beta.i
$ echo blah >> beta
$ hg ci -m '2 (corrupt)'
Expected to fail:
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
beta@1: dddc47b3ba30 not in manifests
2 files, 2 changesets, 4 total revisions
1 integrity errors encountered!
(first damaged changeset appears to be 1)
[1]
$ hg push
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 pushing to $TESTTMP/test (glob)
Sune Foldager
validate: check for spurious incoming filelog entries...
r18422 searching for changes
adding changesets
adding manifests
adding file changes
transaction abort!
rollback completed
abort: received spurious file revlog entry
[255]
$ hg -q rollback
$ mv tmp1 .hg/store/data/beta.i
$ echo beta > beta
Test missing filelog entries:
Adrian Buehlmann
combine tests
r12279 $ cp .hg/store/data/beta.i tmp
$ echo blah >> beta
$ hg ci -m '2 (corrupt)'
$ mv tmp .hg/store/data/beta.i
Expected to fail:
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 beta@1: manifest refers to unknown revision dddc47b3ba30
Adrian Buehlmann
combine tests
r12279 2 files, 2 changesets, 2 total revisions
1 integrity errors encountered!
(first damaged changeset appears to be 1)
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Adrian Buehlmann
combine tests
r12279
$ hg push
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 pushing to $TESTTMP/test (glob)
Adrian Buehlmann
combine tests
r12279 searching for changes
adding changesets
adding manifests
adding file changes
transaction abort!
rollback completed
abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
combine tests
r12279
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..