Mercurial > hg > mercurial-source
changeset 35725:2a774cae3a03 stable
merge: disable path conflict checking by default (issue5716)
We shouldn't ship a severe perf regression in hg update for 4.4.
Differential Revision: https://phab.mercurial-scm.org/D1223
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Tue, 24 Oct 2017 11:15:30 -0700 |
parents | 37450a122128 |
children | 3423f7e2d287 |
files | mercurial/configitems.py tests/test-audit-path.t tests/test-commandserver.t tests/test-merge1.t tests/test-pathconflicts-basic.t tests/test-pathconflicts-merge.t tests/test-pathconflicts-update.t tests/test-update-names.t |
diffstat | 8 files changed, 46 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -579,7 +579,7 @@ default='abort', ) coreconfigitem('experimental', 'merge.checkpathconflicts', - default=True, + default=False, ) coreconfigitem('merge', 'followcopies', default=True,
--- a/tests/test-audit-path.t +++ b/tests/test-audit-path.t @@ -104,8 +104,7 @@ back/test #if symlink $ hg update -Cr2 - back: is both a file and a directory - abort: destination manifest contains path conflicts + abort: path 'back/test' traverses symbolic link 'back' [255] #else ('back' will be a file and cause some other system specific error) @@ -167,12 +166,8 @@ $ hg up -qC 1 $ hg merge 2 - a: path conflict - a file or link has the same name as a directory - the local file has been renamed to a~aa04623eb0c3 - resolve manually then use 'hg resolve --mark a' - 1 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] + abort: path 'a/poisoned' traverses symbolic link 'a' + [255] try rebase onto other revision: cache of audited paths should be discarded, and the rebase should fail (issue5628) @@ -180,11 +175,8 @@ $ hg up -qC 2 $ hg rebase -s 2 -d 1 --config extensions.rebase= rebasing 2:e73c21d6b244 "file a/poisoned" (tip) - a: path conflict - a file or link has the same name as a directory - the local file has been renamed to a~aa04623eb0c3 - resolve manually then use 'hg resolve --mark a' - unresolved conflicts (see hg resolve, then hg rebase --continue) - [1] + abort: path 'a/poisoned' traverses symbolic link 'a' + [255] $ ls ../merge-symlink-out $ cd .. @@ -216,8 +208,7 @@ $ hg up -qC 0 $ hg up 1 - a: is both a file and a directory - abort: destination manifest contains path conflicts + abort: path 'a/b' traverses symbolic link 'a' [255] try linear update including symlinked directory and its content: paths are @@ -226,8 +217,7 @@ $ hg up -qC null $ hg up 1 - a: is both a file and a directory - abort: destination manifest contains path conflicts + abort: path 'a/b' traverses symbolic link 'a' [255] $ ls ../update-symlink-out @@ -238,8 +228,7 @@ $ rm -f a $ hg up -qC 2 $ hg up 1 - a: is both a file and a directory - abort: destination manifest contains path conflicts + abort: path 'a/b' traverses symbolic link 'a' [255] $ ls ../update-symlink-out
--- a/tests/test-commandserver.t +++ b/tests/test-commandserver.t @@ -975,12 +975,8 @@ *** runcommand up -qC 2 *** runcommand up -qC 1 *** runcommand merge 2 - a: path conflict - a file or link has the same name as a directory - the local file has been renamed to a~aa04623eb0c3 - resolve manually then use 'hg resolve --mark a' - 1 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] + abort: path 'a/poisoned' traverses symbolic link 'a' + [255] $ ls ../merge-symlink-out cache of repo.auditor should be discarded, so matcher would never traverse
--- a/tests/test-merge1.t +++ b/tests/test-merge1.t @@ -30,22 +30,23 @@ $ mkdir b && touch b/nonempty $ hg up - b: untracked directory conflicts with file - abort: untracked files in working directory differ from files in requested revision - [255] + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg ci nothing changed [1] $ hg sum - parent: 0:538afb845929 - commit #0 + parent: 1:b8bb4a988f25 tip + commit #1 branch: default - commit: 1 unknown (clean) - update: 1 new changesets (update) + commit: (clean) + update: (current) phases: 2 draft - $ rm b/nonempty + +The following line is commented out because the file doesn't exist at the moment, and some OSes error out even with `rm -f`. +$ rm b/nonempty + $ hg up - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg sum parent: 1:b8bb4a988f25 tip commit #1
--- a/tests/test-pathconflicts-basic.t +++ b/tests/test-pathconflicts-basic.t @@ -1,3 +1,11 @@ +Path conflict checking is currently disabled by default because of issue5716. +Turn it on for this test. + + $ cat >> $HGRCPATH << EOF + > [experimental] + > merge.checkpathconflicts=True + > EOF + $ hg init repo $ cd repo $ echo base > base @@ -96,4 +104,3 @@ commit: (clean) update: 1 new changesets, 2 branch heads (merge) phases: 4 draft -
--- a/tests/test-pathconflicts-merge.t +++ b/tests/test-pathconflicts-merge.t @@ -1,3 +1,11 @@ +Path conflict checking is currently disabled by default because of issue5716. +Turn it on for this test. + + $ cat >> $HGRCPATH << EOF + > [experimental] + > merge.checkpathconflicts=True + > EOF + $ hg init repo $ cd repo $ echo base > base
--- a/tests/test-pathconflicts-update.t +++ b/tests/test-pathconflicts-update.t @@ -1,3 +1,11 @@ +Path conflict checking is currently disabled by default because of issue5716. +Turn it on for this test. + + $ cat >> $HGRCPATH << EOF + > [experimental] + > merge.checkpathconflicts=True + > EOF + $ hg init repo $ cd repo $ echo base > base @@ -150,4 +158,3 @@ $ hg up file2 --clean 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (activating bookmark file2) -
--- a/tests/test-update-names.t +++ b/tests/test-update-names.t @@ -50,9 +50,7 @@ $ hg st ? name/file $ hg up 1 - name: untracked directory conflicts with file - abort: untracked files in working directory differ from files in requested revision - [255] + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd .. #if symlink