view tests/test-remotefilelog-bundle2-legacy.t @ 40975:2465e0b27a0d

run-tests: alias hg to hg.exe on Windows To enable legacy stdio mode on Windows, hg.exe needs to be updated. But before that, we actually have to use it when running the tests. I *think* what was happening before was when MSYS invoked `hg`, it looked at the shbang line and ran python.exe found there. The test harness must be updating $PATH to include the python used to launch it, and therefore it ran py3. As a side note, this also fixed `py -3 run-tests.py` (without --local), which complained about the space in the shbang line before this. This should also help in WSL, because the explicit '.exe' is needed to invoke a Windows app instead of invoking the Linux app. I have no idea why this change capitalizes Lib in the tests, as it was previously lowercase for both py2 and py3.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 16 Dec 2018 17:36:51 -0500
parents 0800d9e6e216
children 68b7faeb6ef3
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
  $ grep generaldelta master/.hg/requires
  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