##// END OF EJS Templates
remotefilelog: include file contents in bundles produced during strip...
remotefilelog: include file contents in bundles produced during strip `hg strip` and other things that use repair.strip (such as the narrow extension's `hg tracked --removeinclude`) will "save" some commits that have a higher revision number than the oldest commit we're stripping, but aren't actually descended from any of the commits that we're stripping. It saves them in a bundle, and then reapplies them to the repo. Remotefilelog doesn't generally participate in strip, it doesn't contribute files to either the backup bundle or the "saved" bundle, and doesn't adjust linknodes when commits are stripped. This can break things like push, which rely on the linknodes. This change makes it so that remotefilelog includes files in these bundles during strip operations. During reapplication, the files are reapplied from the bundle, and the linknode is properly updated. Differential Revision: https://phab.mercurial-scm.org/D10320

File last commit:

r47606:47a95277 default
r47606:47a95277 default
Show More
test-remotefilelog-bundles.t
76 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-remotefilelog-bundles.t
Matt Harbison
tests: disable remotefilelog on Windows...
r40758 #require no-windows
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 $ . "$TESTDIR/remotefilelog-library.sh"
Martin von Zweigbergk
tests: drop obsolete "hginit" alias in remotefilelog tests...
r40605 $ hg init master
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 $ 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)
Kyle Lippincott
remotefilelog: include file contents in bundles produced during strip...
r47606 2 files fetched over 2 fetches - (2 misses, 0.00% hit ratio) over *s (glob)
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 $ hg unbundle .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg
adding changesets
adding manifests
adding file changes
Kyle Lippincott
remotefilelog: include file contents in bundles produced during strip...
r47606 added 2 changesets with 2 changes to 1 files
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 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
Kyle Lippincott
remotefilelog: include file contents in bundles produced during strip...
r47606 $ hg strip -r 66ee28d0328c --config remotefilelog.strip.includefiles=none
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 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)
Kyle Lippincott
remotefilelog: include file contents in bundles produced during strip...
r47606 Pulling from a full bundle, also testing that strip produces a full bundle by
default.
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530
$ hg strip -r 66ee28d0328c
saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg (glob)
Kyle Lippincott
remotefilelog: include file contents in bundles produced during strip...
r47606 $ hg pull -r 66ee28d0328c .hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg
pulling from .hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg
Augie Fackler
remotefilelog: import pruned-down remotefilelog extension from hg-experimental...
r40530 searching for changes
abort: cannot pull from full bundles
(use `hg unbundle` instead)
[255]