diff --git a/mercurial/merge.py b/mercurial/merge.py index bfe89d65d651c9b83a15164e36c738c613b12666_bWVyY3VyaWFsL21lcmdlLnB5..774e2dcd0a65129f23260c0eae4a855b6bb7ed12_bWVyY3VyaWFsL21lcmdlLnB5 100644 --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -577,7 +577,8 @@ folding = not util.checkcase(repo.path) if folding: # collision check is not needed for clean update - if not branchmerge and force: + if (not branchmerge and + (force or not wc.dirty(missing=True, branch=False))): _checkcollision(p2, None) else: _checkcollision(p2, wc) diff --git a/tests/test-casecollision-merge.t b/tests/test-casecollision-merge.t index bfe89d65d651c9b83a15164e36c738c613b12666_dGVzdHMvdGVzdC1jYXNlY29sbGlzaW9uLW1lcmdlLnQ=..774e2dcd0a65129f23260c0eae4a855b6bb7ed12_dGVzdHMvdGVzdC1jYXNlY29sbGlzaW9uLW1lcmdlLnQ= 100644 --- a/tests/test-casecollision-merge.t +++ b/tests/test-casecollision-merge.t @@ -143,6 +143,5 @@ $ hg commit -m '#2' $ hg update 0 - abort: case-folding collision between a and A - [255] + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg parents --template '{rev}\n' @@ -148,3 +147,3 @@ $ hg parents --template '{rev}\n' - 2 + 0 $ hg status -A @@ -150,3 +149,3 @@ $ hg status -A - C A + C a $ cat A @@ -152,5 +151,6 @@ $ cat A - A + a + $ hg up -qC 2 $ hg update --check 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved