##// END OF EJS Templates
match: move entire uipath() implementation to basematcher...
match: move entire uipath() implementation to basematcher Even though most matchers will always want to use the relative path in uipath(), when we add support for intersecting matcher, we will want to control which form to use for any kind of matcher without knowing the type (see next patch), so we need the implementation on the base class. Also rename the attribute from "pathrestricted" to "relativeuipath" since there actually are cases where we match everything but still use relative paths (like when the user runs "hg files .." from inside mercurial/).

File last commit:

r26071:ff12a6c6 default
r32496:ca77a243 default
Show More
test-merge-internal-tools-pattern.t
141 lines | 2.8 KiB | text/troff | Tads3Lexer
/ tests / test-merge-internal-tools-pattern.t
Make sure that the internal merge tools (internal:fail, internal:local,
internal:union and internal:other) are used when matched by a
merge-pattern in hgrc
Make sure HGMERGE doesn't interfere with the test:
$ unset HGMERGE
$ hg init
Initial file contents:
$ echo "line 1" > f
$ echo "line 2" >> f
$ echo "line 3" >> f
$ hg ci -Am "revision 0"
adding f
$ cat f
line 1
line 2
line 3
Branch 1: editing line 1:
$ sed 's/line 1/first line/' f > f.new
$ mv f.new f
$ hg ci -Am "edited first line"
Branch 2: editing line 3:
$ hg update 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ sed 's/line 3/third line/' f > f.new
$ mv f.new f
$ hg ci -Am "edited third line"
created new head
Merge using internal:fail tool:
$ echo "[merge-patterns]" > .hg/hgrc
$ echo "* = internal:fail" >> .hg/hgrc
$ hg merge
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ cat f
line 1
line 2
third line
$ hg stat
M f
Merge using internal:local tool:
$ hg update -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ sed 's/internal:fail/internal:local/' .hg/hgrc > .hg/hgrc.new
$ mv .hg/hgrc.new .hg/hgrc
$ hg merge
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
line 1
line 2
third line
$ hg stat
M f
Merge using internal:other tool:
$ hg update -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ sed 's/internal:local/internal:other/' .hg/hgrc > .hg/hgrc.new
$ mv .hg/hgrc.new .hg/hgrc
$ hg merge
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
first line
line 2
line 3
$ hg stat
M f
Merge using default tool:
$ hg update -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm .hg/hgrc
$ hg merge
merging f
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
first line
line 2
third line
$ hg stat
M f
Merge using internal:union tool:
$ hg update -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "line 4a" >>f
$ hg ci -Am "Adding fourth line (commit 4)"
$ hg update 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "line 4b" >>f
$ hg ci -Am "Adding fourth line v2 (commit 5)"
created new head
$ echo "[merge-patterns]" > .hg/hgrc
$ echo "* = internal:union" >> .hg/hgrc
$ hg merge 3
merging f
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
line 1
line 2
third line
line 4b
line 4a