Mercurial > hg
view tests/remotefilelog-library.sh @ 40570:ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
The extra field prevents sequential invocations of fix from producing the same
hash twice. Previously, this could cause problems because it would create an
obsolescence cycle instead of the expected new successor.
This change also adds an explicit check for whether a new revision should be
committed. Until now, the code relied on memctx.commit() to quietly do nothing
if the node already exists. Because of the new extra field, this no longer
covers the case where we don't want to replace an unchanged node.
Differential Revision: https://phab.mercurial-scm.org/D5245
author | Danny Hooper <hooper@google.com> |
---|---|
date | Thu, 08 Nov 2018 12:35:26 -0800 |
parents | 67e35dceab9b |
children | 95a079ea1e19 |
line wrap: on
line source
CACHEDIR=$PWD/hgcache cat >> $HGRCPATH <<EOF [remotefilelog] cachepath=$CACHEDIR debug=True historypackv1=True datapackversion=1 [extensions] remotefilelog= rebase= mq= [ui] ssh=python "$TESTDIR/dummyssh" [server] preferuncompressed=True [experimental] changegroup3=True [rebase] singletransaction=True EOF hgcloneshallow() { local name local dest orig=$1 shift dest=$1 shift hg clone --shallow --config remotefilelog.reponame=master $orig $dest $@ cat >> $dest/.hg/hgrc <<EOF [remotefilelog] reponame=master datapackversion=1 [phases] publish=False EOF } hgcloneshallowlfs() { local name local dest local lfsdir orig=$1 shift dest=$1 shift lfsdir=$1 shift hg clone --shallow --config "extensions.lfs=" --config "lfs.url=$lfsdir" --config remotefilelog.reponame=master $orig $dest $@ cat >> $dest/.hg/hgrc <<EOF [extensions] lfs= [lfs] url=$lfsdir [remotefilelog] reponame=master datapackversion=1 [phases] publish=False EOF } hginit() { local name name=$1 shift hg init $name $@ } clearcache() { rm -rf $CACHEDIR/* } mkcommit() { echo "$1" > "$1" hg add "$1" hg ci -m "$1" } ls_l() { $PYTHON $TESTDIR/ls-l.py "$@" } identifyrflcaps() { xargs -n 1 echo | egrep '(remotefilelog|getflogheads|getfile)' | sort }