2017-03-30 19:39:44 +03:00
|
|
|
$ $PYTHON -c 'import treemanifest' || exit 80
|
|
|
|
|
2018-01-03 17:35:21 +03:00
|
|
|
$ CACHEDIR=`pwd`/hgcache
|
2017-03-30 19:39:44 +03:00
|
|
|
$ . "$TESTDIR/library.sh"
|
|
|
|
|
2017-03-30 19:39:47 +03:00
|
|
|
$ cat >> $HGRCPATH <<EOF
|
|
|
|
> [extensions]
|
|
|
|
> pushrebase=
|
|
|
|
> EOF
|
2017-03-30 19:39:44 +03:00
|
|
|
|
|
|
|
Test that treemanifest backfill populates the database
|
|
|
|
|
|
|
|
$ initserver master master
|
|
|
|
$ initserver master-alreadysynced master
|
|
|
|
$ initserver master-new master
|
|
|
|
$ cd master
|
|
|
|
$ touch a && hg ci -Aqm a
|
|
|
|
$ mkdir dir
|
|
|
|
$ touch dir/b && hg ci -Aqm b
|
2017-03-30 19:39:47 +03:00
|
|
|
$ hg book master
|
2017-03-30 19:39:44 +03:00
|
|
|
|
|
|
|
$ cd ../master-alreadysynced
|
|
|
|
$ cat >> .hg/hgrc <<EOF
|
|
|
|
> [extensions]
|
|
|
|
> treemanifest=
|
|
|
|
> [treemanifest]
|
|
|
|
> server = True
|
|
|
|
> EOF
|
|
|
|
$ hg log -r tip --forcesync -T '{rev}\n'
|
|
|
|
1
|
|
|
|
|
|
|
|
$ cd ../master
|
2017-03-30 23:36:37 +03:00
|
|
|
$ cat >> .hg/hgrc <<EOF
|
|
|
|
> [extensions]
|
|
|
|
> treemanifest=
|
|
|
|
> [treemanifest]
|
|
|
|
> server = True
|
|
|
|
> EOF
|
|
|
|
$ DBGD=1 hg backfilltree
|
2017-03-30 19:39:44 +03:00
|
|
|
$ ls .hg/store/meta/dir
|
|
|
|
00manifest.i
|
|
|
|
|
|
|
|
Test that an empty repo syncs the tree revlogs
|
|
|
|
|
|
|
|
$ cd ../master-new
|
|
|
|
$ cat >> .hg/hgrc <<EOF
|
|
|
|
> [extensions]
|
|
|
|
> treemanifest=
|
|
|
|
> [treemanifest]
|
|
|
|
> server = True
|
|
|
|
> EOF
|
|
|
|
$ hg log -r tip --forcesync -T '{rev}\n'
|
|
|
|
1
|
|
|
|
$ ls .hg/store/meta/dir
|
|
|
|
00manifest.i
|
2017-03-30 19:39:47 +03:00
|
|
|
|
2017-03-30 23:36:37 +03:00
|
|
|
Test that we can replay backfills into an existing repo
|
|
|
|
$ cd ../master-alreadysynced
|
|
|
|
$ hg sqlreplay
|
|
|
|
$ ls .hg/store/meta/dir
|
|
|
|
00manifest.i
|
2017-03-31 01:51:59 +03:00
|
|
|
$ rm -rf .hg/store/00manifesttree* .hg/store/meta
|
|
|
|
$ hg sqlreplay --start 0 --end 0
|
|
|
|
$ hg debugindex .hg/store/00manifesttree.i
|
|
|
|
rev offset length delta linkrev nodeid p1 p2
|
|
|
|
0 0 44 -1 0 8515d4bfda76 000000000000 000000000000
|
|
|
|
$ hg sqlreplay --start 1 --end 2
|
|
|
|
$ hg debugindex .hg/store/00manifesttree.i
|
|
|
|
rev offset length delta linkrev nodeid p1 p2
|
|
|
|
0 0 44 -1 0 8515d4bfda76 000000000000 000000000000
|
|
|
|
1 44 58 0 1 898d94054864 8515d4bfda76 000000000000
|
2017-03-30 23:36:37 +03:00
|
|
|
$ cd ..
|
|
|
|
|
2017-03-30 19:39:47 +03:00
|
|
|
Test that trees created during push are synced to the db
|
|
|
|
|
|
|
|
$ initclient client
|
|
|
|
$ cd client
|
|
|
|
$ hg pull -q ssh://user@dummy/master
|
|
|
|
$ hg up -q tip
|
|
|
|
$ touch dir/c && hg ci -Aqm c
|
|
|
|
|
|
|
|
$ hg push ssh://user@dummy/master --to master
|
|
|
|
pushing to ssh://user@dummy/master
|
|
|
|
searching for changes
|
2017-07-25 16:29:08 +03:00
|
|
|
remote: pushing 1 changeset:
|
2017-03-30 19:39:47 +03:00
|
|
|
remote: c46827e4453c c
|
|
|
|
|
|
|
|
$ cd ../master-new
|
|
|
|
$ hg log -G -T '{rev} {desc}' --forcesync
|
|
|
|
o 2 c
|
|
|
|
|
|
|
|
|
o 1 b
|
|
|
|
|
|
|
|
|
o 0 a
|
|
|
|
|
|
|
|
$ hg debugdata .hg/store/meta/dir/00manifest.i 1
|
|
|
|
b\x00b80de5d138758541c5f05265ad144ab9fa86d1db (esc)
|
|
|
|
c\x00b80de5d138758541c5f05265ad144ab9fa86d1db (esc)
|