##// END OF EJS Templates
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
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

File last commit:

r36096:a2a6e724 default
r36096:a2a6e724 default
Show More
test-narrow-rebase.t
93 lines | 2.6 KiB | text/troff | Tads3Lexer
/ tests / test-narrow-rebase.t
$ . "$TESTDIR/narrow-library.sh"
create full repo
$ hg init master
$ cd master
$ mkdir inside
$ echo inside1 > inside/f1
$ echo inside2 > inside/f2
$ mkdir outside
$ echo outside1 > outside/f1
$ echo outside2 > outside/f2
$ hg ci -Aqm 'initial'
$ echo modified > inside/f1
$ hg ci -qm 'modify inside/f1'
$ hg update -q 0
$ echo modified2 > inside/f2
$ hg ci -qm 'modify inside/f2'
$ hg update -q 0
$ echo modified > outside/f1
$ hg ci -qm 'modify outside/f1'
$ hg update -q 0
$ echo modified2 > outside/f1
$ hg ci -qm 'conflicting outside/f1'
$ cd ..
$ hg clone --narrow ssh://user@dummy/master narrow --include inside
requesting all changes
adding changesets
adding manifests
adding file changes
added 5 changesets with 4 changes to 2 files (+3 heads)
new changesets *:* (glob)
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd narrow
$ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> EOF
$ hg update -q 0
Can rebase onto commit where no files outside narrow spec are involved
$ hg update -q 0
$ echo modified > inside/f2
$ hg ci -qm 'modify inside/f2'
$ hg rebase -d 'desc("modify inside/f1")'
rebasing 5:c2f36d04e05d "modify inside/f2" (tip)
saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)
Can rebase onto conflicting changes inside narrow spec
$ hg update -q 0
$ echo conflicting > inside/f1
$ hg ci -qm 'conflicting inside/f1'
$ hg rebase -d 'desc("modify inside/f1")' 2>&1 | egrep -v '(warning:|incomplete!)'
rebasing 6:cdce97fbf653 "conflicting inside/f1" (tip)
merging inside/f1
unresolved conflicts (see hg resolve, then hg rebase --continue)
$ echo modified3 > inside/f1
$ hg resolve -m 2>&1 | grep -v continue:
(no more unresolved files)
$ hg rebase --continue
rebasing 6:cdce97fbf653 "conflicting inside/f1" (tip)
saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)
Can rebase onto non-conflicting changes outside narrow spec
$ hg update -q 0
$ echo modified > inside/f2
$ hg ci -qm 'modify inside/f2'
$ hg rebase -d 'desc("modify outside/f1")'
rebasing 7:c2f36d04e05d "modify inside/f2" (tip)
saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)
Rebase interrupts on conflicting changes outside narrow spec
$ hg update -q 'desc("conflicting outside/f1")'
$ hg phase -f -d .
no phases changed
$ hg rebase -d 'desc("modify outside/f1")'
rebasing 4:707c035aadb6 "conflicting outside/f1"
abort: conflict in file 'outside/f1' is outside narrow clone
[255]