mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
ad813edcbd
Summary: Now that all our repos are treemanifest, let's enable the extension by default in tests. Once we're certain no one needs it in production we'll also make it the default in core Mercurial. This diff includes a minor fix in treemanifest to be aware of always-enabled extensions. It won't matter until we actually add treemanifest to the list of default enabled extensions, but I caught this while testing things. Reviewed By: ikostia Differential Revision: D15030253 fbshipit-source-id: d8361f915928b6ad90665e6ed330c1df5c8d8d86
274 lines
12 KiB
Raku
274 lines
12 KiB
Raku
$ setconfig extensions.treemanifest=!
|
|
In this test, we want to test LFS bundle application. The test will cover all
|
|
combinations: LFS on/off; remotefilelog on/off.
|
|
|
|
To make it more interesting, the file revisions will contain hg filelog
|
|
metadata ('\1\n'). The bundle will have 1 file revision overlapping with the
|
|
destination repo.
|
|
|
|
# rev 1 2 3
|
|
# repo: yes yes no
|
|
# bundle: no (base) yes yes (deltabase: 2 if possible)
|
|
|
|
It is interesting because rev 2 could have been stored as LFS in the repo, and
|
|
non-LFS in the bundle; or vice-versa.
|
|
|
|
Init:
|
|
$ . helpers-usechg.sh
|
|
|
|
$ enable lfs remotefilelog
|
|
$ setconfig lfs.url=file://$TESTTMP/remote remotefilelog.cachepath=$TESTTMP/cache
|
|
|
|
Helper functions to create commits:
|
|
|
|
$ commitxy() {
|
|
> hg debugdrawdag "$@" <<'EOS'
|
|
> Y # Y/X=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nE\nF (copied from Y)
|
|
> | # Y/Y=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nG\nH (copied from X)
|
|
> X # X/X=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nC\n
|
|
> # X/Y=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nD\n
|
|
> EOS
|
|
> }
|
|
|
|
$ commitz() {
|
|
> hg debugdrawdag "$@" <<'EOS'
|
|
> Z # Z/X=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nI\n (copied from Y)
|
|
> | # Z/Y=\1\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nJ\n (copied from X)
|
|
> | # Z/Z=\1\nZ
|
|
> Y
|
|
> EOS
|
|
> }
|
|
|
|
$ enablelfs() {
|
|
> cat >> .hg/hgrc <<EOF
|
|
> [lfs]
|
|
> threshold=1
|
|
> EOF
|
|
> }
|
|
|
|
$ enableshallow() {
|
|
> echo remotefilelog >> .hg/requires
|
|
> }
|
|
|
|
Generate bundles
|
|
|
|
$ for i in shallow full; do
|
|
> for j in normal lfs; do
|
|
> NAME=src-$i-$j
|
|
> hg init $TESTTMP/$NAME
|
|
> cd $TESTTMP/$NAME
|
|
> [ $i = shallow ] && enableshallow
|
|
> [ $j = lfs ] && enablelfs
|
|
> commitxy
|
|
> commitz
|
|
> echo ---- Source repo: $i $j ----
|
|
> hg debugfilerevision -r 'all()'
|
|
> hg bundle -q --base X -r Y+Z $TESTTMP/$NAME.bundle
|
|
> SRCNAMES="$SRCNAMES $NAME"
|
|
> done
|
|
> done
|
|
---- Source repo: shallow normal ----
|
|
ed3e785005fc: X
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='' chain=e59d6c47cda0
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='' chain=583fc1cb5a72
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=3 copied='' chain=0ad6e257ad34
|
|
---- Source repo: shallow lfs ----
|
|
ed3e785005fc: X
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='' chain=e59d6c47cda0
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='' chain=583fc1cb5a72
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Source repo: full normal ----
|
|
ed3e785005fc: X
|
|
X: bin=0 lnk=0 flag=0 size=45 copied='' chain=e59d6c47cda0
|
|
Y: bin=0 lnk=0 flag=0 size=45 copied='' chain=583fc1cb5a72
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=583fc1cb5a72,88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39,5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=583fc1cb5a72,88c7303c7f80,78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=7 copied='' chain=0ad6e257ad34
|
|
---- Source repo: full lfs ----
|
|
ed3e785005fc: X
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='' chain=e59d6c47cda0
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='' chain=583fc1cb5a72
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
|
|
Note: full normal repo has a wrong size=45 where it should be 41, see XXX note
|
|
in mercurial/filelog.py.
|
|
|
|
Prepare destination repos
|
|
|
|
$ for i in shallow full; do
|
|
> for j in normal lfs; do
|
|
> NAME=dst-$i-$j
|
|
> hg init $TESTTMP/$NAME
|
|
> cd $TESTTMP/$NAME
|
|
> [ $i = shallow ] && enableshallow
|
|
> [ $j = lfs ] && enablelfs
|
|
> commitxy
|
|
> DSTNAMES="$DSTNAMES $NAME"
|
|
> done
|
|
> done
|
|
|
|
Apply bundles
|
|
|
|
$ cd $TESTTMP
|
|
$ for i in $SRCNAMES; do
|
|
> for j in $DSTNAMES; do
|
|
> echo ---- Applying $i.bundle to $j ----
|
|
> cp -R $TESTTMP/$j $TESTTMP/tmp-$i-$j
|
|
> cd $TESTTMP/tmp-$i-$j
|
|
> hg unbundle $TESTTMP/$i.bundle -q 2>/dev/null || echo 'CRASHED!' && hg debugfilerev -r 'all()-X'
|
|
> if grep remotefilelog .hg/requires &>/dev/null; then :; else
|
|
> hg verify --quiet
|
|
> fi
|
|
> done
|
|
> done
|
|
---- Applying src-shallow-normal.bundle to dst-shallow-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-normal.bundle to dst-shallow-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-normal.bundle to dst-full-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=583fc1cb5a72,88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=000000000000,5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=000000000000,78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=7 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-normal.bundle to dst-full-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=000000000000,5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=000000000000,78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=7 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-lfs.bundle to dst-shallow-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-lfs.bundle to dst-shallow-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-lfs.bundle to dst-full-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=583fc1cb5a72,88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-shallow-lfs.bundle to dst-full-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-normal.bundle to dst-shallow-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-normal.bundle to dst-shallow-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-normal.bundle to dst-full-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=583fc1cb5a72,88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39,5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=583fc1cb5a72,88c7303c7f80,78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=7 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-normal.bundle to dst-full-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=0 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=0 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=0 size=7 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-lfs.bundle to dst-shallow-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-lfs.bundle to dst-shallow-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-lfs.bundle to dst-full-normal ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=0 size=42 copied='Y' chain=e59d6c47cda0,c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=0 size=42 copied='X' chain=583fc1cb5a72,88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|
|
---- Applying src-full-lfs.bundle to dst-full-lfs ----
|
|
9f4445d5e0fc: Y
|
|
X: bin=0 lnk=0 flag=2000 size=42 copied='Y' chain=c6fdd3c3ab39
|
|
Y: bin=0 lnk=0 flag=2000 size=42 copied='X' chain=88c7303c7f80
|
|
c73835eb729c: Z
|
|
X: bin=0 lnk=0 flag=2000 size=41 copied='Y' chain=5322d1c20036
|
|
Y: bin=0 lnk=0 flag=2000 size=41 copied='X' chain=78eb25c15608
|
|
Z: bin=0 lnk=0 flag=2000 size=3 copied='' chain=0ad6e257ad34
|