Mercurial > hg
view tests/test-rhg-sparse-narrow.t @ 50711:40638610c6ee
clonebundles: adds a auto-generate.serve-inline option
This new option disable the "external" serving of auto generated bundle in favor
of using the new "inline bundle" feature that allow serving such bundle through
the mercurial protocol.
This is a less efficient, but very easy to setup way to start using clone bundle.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 19 Jun 2023 18:15:35 +0200 |
parents | e57f76c28f7b |
children | 652149ed64f0 |
line wrap: on
line source
#require rhg $ NO_FALLBACK="env RHG_ON_UNSUPPORTED=abort" Rhg works well when sparse working copy is enabled. $ cd "$TESTTMP" $ hg init repo-sparse $ cd repo-sparse $ cat > .hg/hgrc <<EOF > [extensions] > sparse= > EOF $ echo a > show $ echo x > hide $ mkdir dir1 dir2 $ echo x > dir1/x $ echo y > dir1/y $ echo z > dir2/z $ hg ci -Aqm 'initial' $ hg debugsparse --include 'show' $ ls -A .hg show $ tip=$(hg log -r . --template '{node}') $ $NO_FALLBACK rhg files -r "$tip" dir1/x dir1/y dir2/z hide show $ $NO_FALLBACK rhg files show $ $NO_FALLBACK rhg cat -r "$tip" hide x $ cd .. We support most things when narrow is enabled, too, with a couple of caveats. $ . "$TESTDIR/narrow-library.sh" $ real_hg=$RHG_FALLBACK_EXECUTABLE $ cat >> $HGRCPATH <<EOF > [extensions] > narrow= > EOF $ hg clone --narrow ./repo-sparse repo-narrow --include dir1 requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 2 changes to 2 files new changesets 6d714a4a2998 updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd repo-narrow $ $NO_FALLBACK rhg cat -r "$tip" dir1/x x $ "$real_hg" cat -r "$tip" dir1/x x TODO: bad error message $ $NO_FALLBACK rhg cat -r "$tip" hide abort: invalid revision identifier: 6d714a4a2998cbfd0620db44da58b749f6565d63 [255] $ "$real_hg" cat -r "$tip" hide [1] A naive implementation of `rhg files` would leak the paths that are supposed to be hidden by narrow. $ $NO_FALLBACK rhg files -r "$tip" dir1/x dir1/y $ "$real_hg" files -r "$tip" dir1/x dir1/y The working copy version works with narrow correctly $ $NO_FALLBACK rhg files dir1/x dir1/y $ "$real_hg" files dir1/x dir1/y Hg status needs to do some filtering based on narrow spec $ mkdir dir2 $ touch dir2/q $ "$real_hg" status $ $NO_FALLBACK rhg --config rhg.status=true status Adding "orphaned" index files: $ (cd ..; cp repo-sparse/.hg/store/data/hide.i repo-narrow/.hg/store/data/hide.i) $ (cd ..; mkdir repo-narrow/.hg/store/data/dir2; cp repo-sparse/.hg/store/data/dir2/z.i repo-narrow/.hg/store/data/dir2/z.i) $ "$real_hg" verify -q $ "$real_hg" files -r "$tip" dir1/x dir1/y # TODO: even though [hg files] hides the orphaned dir2/z, [hg cat] still shows it. # rhg has the same issue, but at least it's not specific to rhg. # This is despite [hg verify] succeeding above. $ $NO_FALLBACK rhg cat -r "$tip" dir2/z z $ "$real_hg" cat -r "$tip" dir2/z z