view tests/test-remotefilelog-bundles.t @ 45249:b3040b6739ce

commitctx: extract copy information encoding into extra into commit.py The encoding of copy information into extra has multiple subcases and become quite complicated (eg: empty list can be explicitly or implicitly stored for example). In addition, it is niche experimental feature since as it affect the hash, it is only suitable for user who don't mercurial for storage server side (ie: Google). Having this complexity part of the changelog will get in the way of further cleanup. We could have to either move more of that logic into the changelog or to move or extract more of the logic at the higher level. We take the second approach and start gather logic in dedicated function in commit.py.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sat, 25 Jul 2020 15:13:25 +0200
parents 0800d9e6e216
children 47a9527731c3
line wrap: on
line source

#require no-windows

  $ . "$TESTDIR/remotefilelog-library.sh"

  $ hg init master
  $ cd master
  $ cat >> .hg/hgrc <<EOF
  > [remotefilelog]
  > server=True
  > EOF
  $ echo x > x
  $ hg commit -qAm x
  $ echo y >> x
  $ hg commit -qAm y
  $ echo z >> x
  $ hg commit -qAm z

  $ cd ..

  $ hgcloneshallow ssh://user@dummy/master shallow -q
  1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
  $ cd shallow

Unbundling a shallow bundle

  $ hg strip -r 66ee28d0328c
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob)
  1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
  $ hg unbundle .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg
  adding changesets
  adding manifests
  adding file changes
  added 2 changesets with 0 changes to 0 files
  new changesets 66ee28d0328c:16db62c5946f
  (run 'hg update' to get a working copy)

Unbundling a full bundle

  $ hg -R ../master bundle -r 66ee28d0328c:: --base "66ee28d0328c^" ../fullbundle.hg
  2 changesets found
  $ hg strip -r 66ee28d0328c
  saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob)
  $ hg unbundle ../fullbundle.hg
  adding changesets
  adding manifests
  adding file changes
  added 2 changesets with 2 changes to 1 files
  new changesets 66ee28d0328c:16db62c5946f (2 drafts)
  (run 'hg update' to get a working copy)

Pulling from a shallow bundle

  $ hg strip -r 66ee28d0328c
  saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob)
  $ hg pull -r 66ee28d0328c .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg
  pulling from .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 0 changes to 0 files
  new changesets 66ee28d0328c (1 drafts)
  (run 'hg update' to get a working copy)

Pulling from a full bundle

  $ hg strip -r 66ee28d0328c
  saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg (glob)
  $ hg pull -r 66ee28d0328c ../fullbundle.hg
  pulling from ../fullbundle.hg
  searching for changes
  abort: cannot pull from full bundles
  (use `hg unbundle` instead)
  [255]