Mercurial > hg
view tests/test-remotefilelog-bundle2-legacy.t @ 49991:3997c64eff8b
test: use a more direct approach to test racy mutation
The previous test was relying on implementation details and harder to maintain.
The new version is closer to the initial intend : "What happens the file get overwritten from under the current process"
This change is motivated by further changes around the transaction and dirstate
logic that would break the fragile equilibrium that existed before this patch.
Making this change early make it easier to review on its own and remove noise
in future larger changes.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 07 Feb 2023 13:14:59 +0100 |
parents | 68b7faeb6ef3 |
children | d718eddf01d9 |
line wrap: on
line source
#require no-windows $ . "$TESTDIR/remotefilelog-library.sh" generaldelta to generaldelta interactions with bundle2 but legacy clients without changegroup2 support $ cat > testcg2.py << EOF > import sys > from mercurial import changegroup, registrar, util > cmdtable = {} > command = registrar.command(cmdtable) > @command('testcg2', norepo=True) > def testcg2(ui): > if not util.safehasattr(changegroup, 'cg2packer'): > sys.exit(80) > EOF $ cat >> $HGRCPATH << EOF > [extensions] > testcg2 = $TESTTMP/testcg2.py > EOF $ hg testcg2 || exit 80 $ cat > disablecg2.py << EOF > from mercurial import changegroup, error, util > deleted = False > def reposetup(ui, repo): > global deleted > if deleted: > return > packermap = changegroup._packermap > # protect against future changes > if len(packermap) != 3: > raise error.Abort('packermap has %d versions, expected 3!' % len(packermap)) > for k in ['01', '02', '03']: > if not packermap.get(k): > raise error.Abort("packermap doesn't have key '%s'!" % k) > > del packermap['02'] > deleted = True > EOF $ hg init master $ hg debugrequires -R master | grep generaldelta generaldelta $ cd master preferuncompressed = False so that we can make both generaldelta and non-generaldelta clones $ cat >> .hg/hgrc <<EOF > [remotefilelog] > server=True > [experimental] > bundle2-exp = True > [server] > preferuncompressed = False > EOF $ echo x > x $ hg commit -qAm x $ cd .. $ hgcloneshallow ssh://user@dummy/master shallow -q --pull --config experimental.bundle2-exp=True 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ cd shallow $ cat >> .hg/hgrc << EOF > [extensions] > disablecg2 = $TESTTMP/disablecg2.py > EOF $ cd ../master $ echo y > y $ hg commit -qAm y $ cd ../shallow $ hg pull -u pulling from ssh://user@dummy/master searching for changes adding changesets adding manifests adding file changes added 1 changesets with 0 changes to 0 files new changesets d34c38483be9 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ echo a > a $ hg commit -qAm a $ hg push pushing to ssh://user@dummy/master searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files