Mercurial > hg
view tests/test-lfs-bundle.t @ 42101:f4b1f5537d4c
overlayworkingctx: fix file/dir audit to be repo-relative
Before this patch, test-rebase-inmemory.t would stop erroring out
about the conflict if you added a "cd a" before line 252. That was
because a glob matcher (which are relative) was unintentionally
used. That happened because the matcher was given "include" patterns
(not regular patterns), and "include" patterns are always glob by
default (i.e. unless you write them including the kind prefix). IOW,
the "default='path'" argument passed to ctx.match() was ignored.
Differential Revision: https://phab.mercurial-scm.org/D6223
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 10 Apr 2019 17:31:32 -0700 |
parents | 556984ae0005 |
children | ca82929e433d |
line wrap: on
line source
In this test, we want to test LFS bundle application on both LFS and non-LFS repos. 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 $ cat >> $HGRCPATH << EOF > [extensions] > lfs= > drawdag=$TESTDIR/drawdag.py > [lfs] > url=file:$TESTTMP/lfs-remote > EOF Helper functions $ commitxy() { > hg debugdrawdag "$@" <<'EOS' > Y # Y/X=\1\nAAAA\nE\nF > | # Y/Y=\1\nAAAA\nG\nH > X # X/X=\1\nAAAA\nC\n > # X/Y=\1\nAAAA\nD\n > EOS > } $ commitz() { > hg debugdrawdag "$@" <<'EOS' > Z # Z/X=\1\nAAAA\nI\n > | # Z/Y=\1\nAAAA\nJ\n > | # Z/Z=\1\nZ > Y > EOS > } $ enablelfs() { > cat >> .hg/hgrc <<EOF > [lfs] > track=all() > EOF > } Generate bundles $ for i in normal lfs; do > NAME=src-$i > hg init $TESTTMP/$NAME > cd $TESTTMP/$NAME > [ $i = lfs ] && enablelfs > commitxy > commitz > hg bundle -q --base X -r Y+Z $TESTTMP/$NAME.bundle > SRCNAMES="$SRCNAMES $NAME" > done Prepare destination repos $ for i in normal lfs; do > NAME=dst-$i > hg init $TESTTMP/$NAME > cd $TESTTMP/$NAME > [ $i = lfs ] && enablelfs > commitxy > DSTNAMES="$DSTNAMES $NAME" > done Apply bundles $ 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 > if hg unbundle $TESTTMP/$i.bundle -q 2>/dev/null; then > hg verify -q && echo OK > else > echo CRASHED > fi > done > done ---- Applying src-normal.bundle to dst-normal ---- OK ---- Applying src-normal.bundle to dst-lfs ---- OK ---- Applying src-lfs.bundle to dst-normal ---- OK ---- Applying src-lfs.bundle to dst-lfs ---- OK