comparison tests/test-narrow-update.t @ 36079: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 6767e7ce2c31
comparison
equal deleted inserted replaced
36078:7f68235f23ff 36079:a2a6e724d61a
1
2 $ . "$TESTDIR/narrow-library.sh"
3
4 create full repo
5
6 $ hg init master
7 $ cd master
8 $ echo init > init
9 $ hg ci -Aqm 'initial'
10
11 $ mkdir inside
12 $ echo inside > inside/f1
13 $ mkdir outside
14 $ echo outside > outside/f1
15 $ hg ci -Aqm 'add inside and outside'
16
17 $ echo modified > inside/f1
18 $ hg ci -qm 'modify inside'
19
20 $ echo modified > outside/f1
21 $ hg ci -qm 'modify outside'
22
23 $ cd ..
24
25 $ hg clone --narrow ssh://user@dummy/master narrow --include inside
26 requesting all changes
27 adding changesets
28 adding manifests
29 adding file changes
30 added 4 changesets with 2 changes to 1 files
31 new changesets *:* (glob)
32 updating to branch default
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
34 $ cd narrow
35 $ hg debugindex -c
36 rev offset length base linkrev nodeid p1 p2
37 0 0 64 0 0 9958b1af2add 000000000000 000000000000
38 1 64 81 1 1 2db4ce2a3bfe 9958b1af2add 000000000000
39 2 145 75 2 2 0980ee31a742 2db4ce2a3bfe 000000000000
40 3 220 (76|77) 3 3 4410145019b7 0980ee31a742 000000000000 (re)
41
42 $ hg update -q 0
43
44 Can update to revision with changes inside
45
46 $ hg update -q 'desc("add inside and outside")'
47 $ hg update -q 'desc("modify inside")'
48 $ find *
49 inside
50 inside/f1 (glob)
51 $ cat inside/f1
52 modified
53
54 Can update to revision with changes outside
55
56 $ hg update -q 'desc("modify outside")'
57 $ find *
58 inside
59 inside/f1 (glob)
60 $ cat inside/f1
61 modified
62
63 Can update with a deleted file inside
64
65 $ hg rm inside/f1
66 $ hg update -q 'desc("modify inside")'
67 $ hg update -q 'desc("modify outside")'
68 $ hg update -q 'desc("initial")'
69 $ hg update -q 'desc("modify inside")'
70
71 Can update with a moved file inside
72
73 $ hg mv inside/f1 inside/f2
74 $ hg update -q 'desc("modify outside")'
75 $ hg update -q 'desc("initial")'
76 $ hg update -q 'desc("modify inside")'