Mercurial > hg
view tests/test-lfs-bundle.t @ 44076:a7c4bcf7018a
phabricator: post revisions in ascending topological order (issue6241)
The parent in phabricator ends up being the last revision posted, so sorting the
user input into ascending order should be enough to preserve the proper
relationships.
Differential Revision: https://phab.mercurial-scm.org/D7874
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 14 Jan 2020 16:37:45 -0500 |
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