mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
b781a58782
Since upstream Mercurial now defaults to generaldelta, this affects the tests. In this particular test, the offset value (which contains the revlog type if it's rev 0, like in this case), is different because it now contains the generaldelta bit.
67 lines
2.2 KiB
Perl
67 lines
2.2 KiB
Perl
$ . "$TESTDIR/library.sh"
|
|
|
|
# Populate the db with an initial commit
|
|
|
|
$ initclient client
|
|
$ cd client
|
|
$ echo x > x
|
|
$ hg commit -qAm x
|
|
$ echo y > y
|
|
$ hg commit -qAm y
|
|
$ hg up 0
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
$ echo z > z
|
|
$ hg commit -qAm z
|
|
$ cd ..
|
|
|
|
$ initserver master masterrepo
|
|
$ cd master
|
|
$ hg log
|
|
$ hg pull -q ../client
|
|
|
|
# Strip middle commit, verify sync fails
|
|
|
|
$ hg strip -r 1 --config extensions.hgsql=!
|
|
saved backup bundle to $TESTTMP/master/.hg/strip-backup/d34c38483be9-3839604f-backup.hg (glob)
|
|
- The huge number in the output below is because we're trying to apply rev 0
|
|
(which contains the generaldelta bit in the offset int) to a non-rev 0
|
|
location (so the generaldelta bit isn't stripped before the comparison)
|
|
$ hg log -l 1 2>&1 | egrep 'Corruption'
|
|
hgext_hgsql.CorruptionException: revision offset doesn't match prior length (12884967424 offset vs 3 length): data/z.i
|
|
|
|
# Recover middle commit, but on top, then try syncing (succeeds)
|
|
|
|
$ hg unbundle -q $TESTTMP/master/.hg/strip-backup/d34c38483be9-3839604f-backup.hg --config extensions.hgsql=!
|
|
$ hg log -l 1
|
|
changeset: 2:d34c38483be9
|
|
tag: tip
|
|
parent: 0:b292c1e3311f
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: y
|
|
|
|
$ cd ..
|
|
|
|
# Attempt to pull new commit should fail because base rev is wrong due to reordering
|
|
|
|
$ cd client
|
|
$ echo a > a
|
|
$ hg commit -qAm a
|
|
$ cd ../master
|
|
$ hg pull ../client 2>&1 | egrep 'Corruption'
|
|
hgext_hgsql.CorruptionException: expected node d34c38483be9d08f205eaae60c380a29b48e0189 at rev 1 of 00changelog.i but found bc3a71defa4a8fb6e8e5c192c02a26d94853d281
|
|
|
|
# Fix ordering, can pull now
|
|
|
|
$ hg strip -r 1 --config extensions.hgsql=!
|
|
saved backup bundle to $TESTTMP/master/.hg/strip-backup/bc3a71defa4a-48128f20-backup.hg (glob)
|
|
$ hg unbundle -q $TESTTMP/master/.hg/strip-backup/bc3a71defa4a-48128f20-backup.hg --config extensions.hgsql=!
|
|
$ hg pull ../client
|
|
pulling from ../client
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
(run 'hg update' to get a working copy)
|