Mercurial > hg
view tests/test-remotefilelog-bundle2-legacy.t @ 43961:b69d5f3a41d0
rust-index: add a struct wrapping the C index
Implementing the full index logic in one go is journey larger than we would
like.
To achieve a smoother transition, we start with a simple Rust wrapper that delegates
allwork to the current C implementation. Once we will have a fully working index
object in Rust, we can easily start using more and more Rust Code with it.
The object in this patch is functional and tested. However, multiple of the
currently existing rust (in the `hg-cpython` crate) requires a `Graph`. Right
now we build this `Graph` (as cindex::Index) using the C index passed as
a PyObject. They will have to be updated to be made compatible.
Differential Revision: https://phab.mercurial-scm.org/D7655
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Mon, 23 Dec 2019 10:02:50 -0800 |
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