mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
0562c1220f
Summary: This makes tests depend less on revision numbers. Reviewed By: DurhamG Differential Revision: D22468669 fbshipit-source-id: 74a06930faa3e6ee9d246ecc718c2a3740f57a54
93 lines
2.2 KiB
Perl
93 lines
2.2 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
#testcases case-innodb case-rocksdb
|
|
|
|
#if case-rocksdb
|
|
$ DBENGINE=rocksdb
|
|
#else
|
|
$ DBENGINE=innodb
|
|
#endif
|
|
|
|
$ . "$TESTDIR/hgsql/library.sh"
|
|
$ disable treemanifest
|
|
$ setconfig hgsql.verbose=1
|
|
|
|
# Populate the db with an initial commit
|
|
|
|
$ initclient client
|
|
$ cd client
|
|
$ echo x > x
|
|
$ hg commit -qAm x
|
|
$ cd ..
|
|
|
|
$ initserver master masterrepo
|
|
$ cd master
|
|
$ hg log
|
|
$ hg pull -q ../client
|
|
[hgsql] got lock after * seconds (read 1 rows) (glob)
|
|
[hgsql] held lock for * seconds (read 5 rows; write 5 rows) (glob)
|
|
|
|
$ cd ..
|
|
|
|
# Verify new masters see the same commit
|
|
|
|
$ initserver master2 masterrepo
|
|
$ cd master2
|
|
$ hg log
|
|
[hgsql] getting 1 commits from database
|
|
commit: b292c1e3311f
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: x
|
|
|
|
|
|
# Push new commit to one master, verify it shows up in the other
|
|
|
|
$ cd ../client
|
|
$ echo y > y
|
|
|
|
$ hg commit -qAm y
|
|
$ hg push -q ssh://user@dummy/master
|
|
$ cd ../master2
|
|
$ hg log -r tip --forcesync
|
|
[hgsql] getting 1 commits from database
|
|
commit: d34c38483be9
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: y
|
|
|
|
$ hg log -r tip
|
|
commit: d34c38483be9
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: y
|
|
|
|
|
|
# Now strip the latest commit, sync from master (that should fail), but sync from replica
|
|
# should succeed
|
|
$ cd ../master
|
|
$ hg sqlstrip --i-know-what-i-am-doing 1
|
|
*** YOU ARE ABOUT TO DELETE HISTORY (MANDATORY 5 SECOND WAIT) ***
|
|
stripping locally
|
|
stripping from the database
|
|
deleting old references
|
|
deleting revision data
|
|
$ cd ../master2
|
|
$ hg log -r tip --forcesync 2>&1 | grep CorruptionException
|
|
CorruptionException: tip doesn't match after sync (self: 1, fetchend: 0)
|
|
$ DB="$(hg config hgsql.database --config hgsql.initialsync=False)"
|
|
$ hg log -r tip --syncfromreplica --config hgsql.replicadatabase="$DB"
|
|
commit: d34c38483be9
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: y
|
|
|
|
|
|
$ hg log -r tip --forcesync --syncfromreplica --config hgsql.replicadatabase="$DB"
|
|
commit: d34c38483be9
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: y
|
|
|