Mercurial > hg
diff tests/test-remotefilelog-local.t @ 46847:47a9527731c3
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
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Tue, 06 Apr 2021 14:21:03 -0700 |
parents | 976b26bdd0d8 |
children | 983e2db18d67 |
line wrap: on
line diff
--- a/tests/test-remotefilelog-local.t Tue Apr 06 15:38:33 2021 -0700 +++ b/tests/test-remotefilelog-local.t Tue Apr 06 14:21:03 2021 -0700 @@ -116,7 +116,7 @@ $ hg strip -r . 2 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/19edf50f4de7-df3d0f74-backup.hg (glob) - 4 files fetched over 2 fetches - (4 misses, 0.00% hit ratio) over *s (glob) + 3 files fetched over 2 fetches - (3 misses, 0.00% hit ratio) over *s (glob) # unbundle @@ -133,13 +133,14 @@ adding changesets adding manifests adding file changes - added 1 changesets with 0 changes to 0 files + added 1 changesets with 3 changes to 3 files new changesets 19edf50f4de7 (1 drafts) (run 'hg update' to get a working copy) + 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) $ hg up 3 files updated, 0 files merged, 0 files removed, 0 files unresolved - 4 files fetched over 1 fetches - (4 misses, 0.00% hit ratio) over *s (glob) + 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ cat a a @@ -148,7 +149,7 @@ $ clearcache $ hg revert -r .~2 y z no changes needed to z - 2 files fetched over 2 fetches - (2 misses, 0.00% hit ratio) over *s (glob) + 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ hg checkout -C -r . -q # explicit bundle should produce full bundle file @@ -159,7 +160,7 @@ $ cd .. $ hgcloneshallow ssh://user@dummy/master shallow2 -q - 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) + 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) $ cd shallow2 $ hg unbundle ../local.bundle adding changesets