mirror of
https://github.com/facebook/sapling.git
synced 2024-12-29 08:02:24 +03:00
75a8173a10
Summary: Add `#chg-compatible` to 572 tests that seem to pass with chg enabled. This should make them run faster. Reviewed By: xavierd Differential Revision: D18870507 fbshipit-source-id: fe895e733efffc9286cd3d17c7a156c803124395
151 lines
4.4 KiB
Turing
151 lines
4.4 KiB
Turing
#chg-compatible
|
|
|
|
$ setconfig extensions.treemanifest=!
|
|
#require unix-permissions no-root
|
|
|
|
$ cat > $TESTTMP/dumpjournal.py <<EOF
|
|
> import sys
|
|
> for entry in sys.stdin.read().split('\n'):
|
|
> if entry:
|
|
> print(entry.split('\x00')[0])
|
|
> EOF
|
|
|
|
$ teststrip() {
|
|
> hg -q up -C $1
|
|
> echo % before update $1, strip $2
|
|
> hg parents
|
|
> chmod -$3 $4
|
|
> hg debugstrip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/'
|
|
> echo % after update $1, strip $2
|
|
> chmod +$3 $4
|
|
> hg verify
|
|
> echo % journal contents
|
|
> if [ -f .hg/store/journal ]; then
|
|
> cat .hg/store/journal | $PYTHON $TESTTMP/dumpjournal.py
|
|
> else
|
|
> echo "(no journal)"
|
|
> fi
|
|
> ls .hg/store/journal >/dev/null 2>&1 && hg recover
|
|
> ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/*
|
|
> rm -rf .hg/strip-backup
|
|
> }
|
|
|
|
$ hg init test
|
|
$ cd test
|
|
$ echo a > a
|
|
$ hg -q ci -m "a" -A
|
|
$ echo b > b
|
|
$ hg -q ci -m "b" -A
|
|
$ echo b2 >> b
|
|
$ hg -q ci -m "b2" -A
|
|
$ echo c > c
|
|
$ hg -q ci -m "c" -A
|
|
$ teststrip 0 2 w .hg/store/data/b.i
|
|
% before update 0, strip 2
|
|
changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
saved backup bundle
|
|
transaction abort!
|
|
failed to truncate data/b.i
|
|
rollback failed - please run hg recover
|
|
strip failed, backup bundle
|
|
abort: Permission denied .hg/store/data/b.i
|
|
(current process runs with uid 42)
|
|
($TESTTMP/test/.hg/store/data/b.i: mode 0o52, uid 42, gid 42)
|
|
($TESTTMP/test/.hg/store/data: mode 0o52, uid 42, gid 42)
|
|
% after update 0, strip 2
|
|
abandoned transaction found - run hg recover
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
b@?: rev 1 points to nonexistent changeset 2
|
|
(expected 1)
|
|
b@?: 736c29771fba not in manifests
|
|
warning: orphan revlog 'data/c.i'
|
|
2 files, 2 changesets, 3 total revisions
|
|
2 warnings encountered!
|
|
2 integrity errors encountered!
|
|
% journal contents
|
|
00changelog.d
|
|
00changelog.i
|
|
00manifest.i
|
|
data/b.i
|
|
data/c.i
|
|
rolling back interrupted transaction
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
2 files, 2 changesets, 2 total revisions
|
|
$ teststrip 0 2 r .hg/store/data/b.i
|
|
% before update 0, strip 2
|
|
changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
abort: Permission denied .hg/store/data/b.i
|
|
(current process runs with uid 42)
|
|
($TESTTMP/test/.hg/store/data/b.i: mode 0o52, uid 42, gid 42)
|
|
($TESTTMP/test/.hg/store/data: mode 0o52, uid 42, gid 42)
|
|
% after update 0, strip 2
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
3 files, 4 changesets, 4 total revisions
|
|
% journal contents
|
|
(no journal)
|
|
$ teststrip 0 2 w .hg/store/00manifest.i
|
|
% before update 0, strip 2
|
|
changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
saved backup bundle
|
|
transaction abort!
|
|
failed to truncate 00manifest.i
|
|
rollback failed - please run hg recover
|
|
strip failed, backup bundle
|
|
abort: Permission denied .hg/store/00manifest.i
|
|
(current process runs with uid 42)
|
|
($TESTTMP/test/.hg/store/00manifest.i: mode 0o52, uid 42, gid 42)
|
|
($TESTTMP/test/.hg/store: mode 0o52, uid 42, gid 42)
|
|
% after update 0, strip 2
|
|
abandoned transaction found - run hg recover
|
|
checking changesets
|
|
checking manifests
|
|
manifest@?: rev 2 points to nonexistent changeset 2
|
|
manifest@?: 3362547cdf64 not in changesets
|
|
manifest@?: rev 3 points to nonexistent changeset 3
|
|
manifest@?: 265a85892ecb not in changesets
|
|
crosschecking files in changesets and manifests
|
|
c@3: in manifest but not in changeset
|
|
checking files
|
|
b@?: rev 1 points to nonexistent changeset 2
|
|
(expected 1)
|
|
c@?: rev 0 points to nonexistent changeset 3
|
|
3 files, 2 changesets, 4 total revisions
|
|
1 warnings encountered!
|
|
7 integrity errors encountered!
|
|
(first damaged changeset appears to be 3)
|
|
% journal contents
|
|
00changelog.d
|
|
00changelog.i
|
|
00manifest.i
|
|
data/b.i
|
|
data/c.i
|
|
rolling back interrupted transaction
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
2 files, 2 changesets, 2 total revisions
|
|
|
|
$ cd ..
|