tests/test-casecollision-merge.t
branchstable
changeset 15673 d550168f11ce
child 16478 cbf2ea2f5ca1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-casecollision-merge.t	Fri Dec 16 21:21:27 2011 +0900
@@ -0,0 +1,109 @@
+run only on case-insensitive filesystems
+
+  $ "$TESTDIR/hghave" icasefs || exit 80
+
+################################
+test for branch merging
+################################
+
+  $ hg init repo1
+  $ cd repo1
+
+create base revision
+
+  $ echo base > base.txt
+  $ hg add base.txt
+  $ hg commit -m 'base'
+
+add same file in different case on both heads
+
+  $ echo a > a.txt
+  $ hg add a.txt
+  $ hg commit -m 'add a.txt'
+
+  $ hg update 0
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+  $ echo A > A.TXT
+  $ hg add A.TXT
+  $ hg commit -m 'add A.TXT'
+  created new head
+
+merge another, and fail with case-folding collision
+
+  $ hg merge
+  abort: case-folding collision between a.txt and A.TXT
+  [255]
+
+check clean-ness of working directory
+
+  $ hg status
+  $ hg parents --template '{rev}\n'
+  2
+  $ cd ..
+
+################################
+test for linear updates
+################################
+
+  $ hg init repo2
+  $ cd repo2
+
+create base revision (rev:0)
+
+  $ hg import --bypass --exact - <<EOF
+  > # HG changeset patch
+  > # User null
+  > # Date 1 0
+  > # Node ID e1bdf414b0ea9c831fd3a14e94a0a18e1410f98b
+  > # Parent  0000000000000000000000000000000000000000
+  > add a
+  > 
+  > diff --git a/a b/a
+  > new file mode 100644
+  > --- /dev/null
+  > +++ b/a
+  > @@ -0,0 +1,3 @@
+  > +this is line 1
+  > +this is line 2
+  > +this is line 3
+  > EOF
+  applying patch from stdin
+
+create rename revision (rev:1)
+
+  $ hg import --bypass --exact - <<EOF
+  > # HG changeset patch
+  > # User null
+  > # Date 1 0
+  > # Node ID 9dca9f19bb91851bc693544b598b0740629edfad
+  > # Parent  e1bdf414b0ea9c831fd3a14e94a0a18e1410f98b
+  > rename a to A
+  > 
+  > diff --git a/a b/A
+  > rename from a
+  > rename to A
+  > EOF
+  applying patch from stdin
+
+update to base revision, and modify 'a'
+
+  $ hg update 0
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo 'this is added line' >> a
+
+update to current tip linearly
+
+  $ hg update 1
+  merging a and A to A
+  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+
+check status and contents of file
+
+  $ hg status -A
+  M A
+  $ cat A
+  this is line 1
+  this is line 2
+  this is line 3
+  this is added line