D786: tests: add test for path conflicts during update

mbthomas (Mark Thomas) phabricator at mercurial-scm.org
Fri Sep 22 09:28:50 UTC 2017


mbthomas created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D786

AFFECTED FILES
  tests/test-pathconflicts-update.t

CHANGE DETAILS

diff --git a/tests/test-pathconflicts-update.t b/tests/test-pathconflicts-update.t
new file mode 100644
--- /dev/null
+++ b/tests/test-pathconflicts-update.t
@@ -0,0 +1,114 @@
+  $ hg init repo
+  $ cd repo
+  $ echo base > base
+  $ hg add base
+  $ hg commit -m "base"
+  $ hg bookmark -i base
+  $ mkdir a
+  $ echo 1 > a/b
+  $ hg add a/b
+  $ hg commit -m "file"
+  $ hg bookmark -i file
+  $ echo 2 > a/b
+  $ hg commit -m "file2"
+  $ hg bookmark -i file2
+  $ hg up 0
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ mkdir a
+  $ ln -s c a/b
+  $ hg add a/b
+  $ hg commit -m "link"
+  created new head
+  $ hg bookmark -i link
+  $ hg up 0
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ mkdir -p a/b/c
+  $ echo 2 > a/b/c/d
+  $ hg add a/b/c/d
+  $ hg commit -m "dir"
+  created new head
+  $ hg bookmark -i dir
+
+Update - local file conflicts with remote directory:
+
+  $ hg up -q 0
+  $ mkdir a
+  $ echo 9 > a/b
+  $ hg up dir
+  a/b: untracked file conflicts with directory
+  abort: untracked files in working directory differ from files in requested revision
+  [255]
+  $ hg up dir --config merge.checkunknown=warn
+  a/b: replacing untracked file
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (activating bookmark dir)
+  $ cat a/b.orig
+  9
+  $ rm a/b.orig
+
+Update - local symlink conflicts with remote directory:
+
+  $ hg up -q 0
+  $ mkdir a
+  $ ln -s x a/b
+  $ hg up dir
+  a/b: untracked file conflicts with directory
+  abort: untracked files in working directory differ from files in requested revision
+  [255]
+  $ hg up dir --config merge.checkunknown=warn
+  a/b: replacing untracked file
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (activating bookmark dir)
+  $ readlink a/b.orig
+  x
+  $ rm a/b.orig
+
+Update - local directory conflicts with remote file
+
+  $ hg up -q 0
+  $ mkdir -p a/b/c
+  $ echo 9 > a/b/c/d
+  $ hg up file
+  a/b: untracked directory conflicts with file
+  abort: untracked files in working directory differ from files in requested revision
+  [255]
+  $ hg up file --config merge.checkunknown=warn
+  a/b: replacing untracked files in directory
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (activating bookmark file)
+  $ cat a/b
+  1
+  $ test -d a/b.orig
+  $ rm -rf a/b.orig
+
+Update - local directory conflicts with remote symlink
+
+  $ hg up -q 0
+  $ mkdir -p a/b/c
+  $ echo 9 > a/b/c/d
+  $ hg up link
+  a/b: untracked directory conflicts with file
+  abort: untracked files in working directory differ from files in requested revision
+  [255]
+  $ hg up link --config merge.checkunknown=warn
+  a/b: replacing untracked files in directory
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (activating bookmark link)
+  $ readlink a/b
+  c
+  $ test -d a/b.orig
+  $ rm -rf a/b.orig
+
+Update clean - local directory conflicts with changed remote file
+
+  $ hg up -q file
+  $ rm a/b
+  $ mkdir a/b
+  $ echo 9 > a/b/c
+  $ hg up file2 --check --config merge.checkunknown=warn
+  abort: uncommitted changes
+  [255]
+  $ hg up file2 --clean
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (activating bookmark file2)
+



To: mbthomas, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list