Mercurial > hg-stable
diff tests/test-narrow-shallow.t @ 36117:a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Adjustments:
* renamed src to hgext/narrow
* marked extension experimental
* added correct copyright header where it was missing
* updated hgrc extension enable line in library.sh
* renamed library.sh to narrow-library.sh
* dropped all files from repo root as they're not interesting
* dropped test-pyflakes.t, test-check-code.t and test-check-py3-compat.t
* renamed remaining tests to all be test-narrow-* when they didn't already
* fixed test-narrow-expanddirstate.t to refer to narrow and not narrowhg
* fixed tests that wanted `update -C .` instead of `merge --abort`
* corrected a two-space indent in narrowspec.py
* added a missing _() in narrowcommands.py
* fixed imports to pass the import checker
* narrow only adds its --include and --exclude to clone if sparse isn't
enabled to avoid breaking test-duplicateoptions.py. This is a kludge,
and we'll need to come up with a better solution in the future.
These were more or less the minimum to import something that would
pass tests and not create a bunch of files we'll never use.
Changes I intend to make as followups:
* rework the test-narrow-*-tree.t tests to use the new testcases
functionality in run-tests.py
* remove lots of monkeypatches of core things
Differential Revision: https://phab.mercurial-scm.org/D1974
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 29 Jan 2018 16:19:33 -0500 |
parents | |
children | 8d033b348d85 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-narrow-shallow.t Mon Jan 29 16:19:33 2018 -0500 @@ -0,0 +1,122 @@ + $ . "$TESTDIR/narrow-library.sh" + + $ hg init master + $ cd master + $ cat >> .hg/hgrc <<EOF + > [narrow] + > serveellipses=True + > EOF + $ for x in `$TESTDIR/seq.py 10` + > do + > echo $x > "f$x" + > hg add "f$x" + > done + $ hg commit -m "Add root files" + $ mkdir d1 d2 + $ for x in `$TESTDIR/seq.py 10` + > do + > echo d1/$x > "d1/f$x" + > hg add "d1/f$x" + > echo d2/$x > "d2/f$x" + > hg add "d2/f$x" + > done + $ hg commit -m "Add d1 and d2" + $ for x in `$TESTDIR/seq.py 10` + > do + > echo f$x rev2 > "f$x" + > echo d1/f$x rev2 > "d1/f$x" + > echo d2/f$x rev2 > "d2/f$x" + > hg commit -m "Commit rev2 of f$x, d1/f$x, d2/f$x" + > done + $ cd .. + +narrow and shallow clone the d2 directory + + $ hg clone --narrow ssh://user@dummy/master shallow --include "d2" --depth 2 + requesting all changes + adding changesets + adding manifests + adding file changes + added 4 changesets with 13 changes to 10 files + new changesets *:* (glob) + updating to branch default + 10 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd shallow + $ hg log -T '{rev}{if(ellipsis,"...")}: {desc}\n' + 3: Commit rev2 of f10, d1/f10, d2/f10 + 2: Commit rev2 of f9, d1/f9, d2/f9 + 1: Commit rev2 of f8, d1/f8, d2/f8 + 0...: Commit rev2 of f7, d1/f7, d2/f7 + $ hg update 0 + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat d2/f7 d2/f8 + d2/f7 rev2 + d2/8 + + $ cd .. + +change every upstream file once + + $ cd master + $ for x in `$TESTDIR/seq.py 10` + > do + > echo f$x rev3 > "f$x" + > echo d1/f$x rev3 > "d1/f$x" + > echo d2/f$x rev3 > "d2/f$x" + > hg commit -m "Commit rev3 of f$x, d1/f$x, d2/f$x" + > done + $ cd .. + +pull new changes with --depth specified. There were 10 changes to the d2 +directory but the shallow pull should only fetch 3. + + $ cd shallow + $ hg pull --depth 2 + pulling from ssh://user@dummy/master + searching for changes + adding changesets + adding manifests + adding file changes + added 4 changesets with 10 changes to 10 files + new changesets *:* (glob) + (run 'hg update' to get a working copy) + $ hg log -T '{rev}{if(ellipsis,"...")}: {desc}\n' + 7: Commit rev3 of f10, d1/f10, d2/f10 + 6: Commit rev3 of f9, d1/f9, d2/f9 + 5: Commit rev3 of f8, d1/f8, d2/f8 + 4...: Commit rev3 of f7, d1/f7, d2/f7 + 3: Commit rev2 of f10, d1/f10, d2/f10 + 2: Commit rev2 of f9, d1/f9, d2/f9 + 1: Commit rev2 of f8, d1/f8, d2/f8 + 0...: Commit rev2 of f7, d1/f7, d2/f7 + $ hg update 4 + merging d2/f1 + merging d2/f2 + merging d2/f3 + merging d2/f4 + merging d2/f5 + merging d2/f6 + merging d2/f7 + 3 files updated, 7 files merged, 0 files removed, 0 files unresolved + $ cat d2/f7 d2/f8 + d2/f7 rev3 + d2/f8 rev2 + $ hg update 7 + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat d2/f10 + d2/f10 rev3 + + $ cd .. + +cannot clone with zero or negative depth + + $ hg clone --narrow ssh://user@dummy/master bad --include "d2" --depth 0 + requesting all changes + remote: abort: depth must be positive, got 0 + abort: pull failed on remote + [255] + $ hg clone --narrow ssh://user@dummy/master bad --include "d2" --depth -1 + requesting all changes + remote: abort: depth must be positive, got -1 + abort: pull failed on remote + [255]