D5961: copies: add test that makes both the merging csets dirty and run w/o error

khanchi97 (Sushil khanchi) phabricator at mercurial-scm.org
Sun Mar 3 01:50:12 EST 2019


khanchi97 updated this revision to Diff 14308.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5961?vs=14239&id=14308

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

AFFECTED FILES
  tests/test-copies.t

CHANGE DETAILS

diff --git a/tests/test-copies.t b/tests/test-copies.t
--- a/tests/test-copies.t
+++ b/tests/test-copies.t
@@ -491,3 +491,109 @@
   $ hg debugpathcopies 0 5
   x -> z
 
+
+Test for a case in fullcopytracing algorithm where both the merging csets are
+dirty which means no cset is descendant of merging base. This test reflect
+that for this particular case this algorithm correctly find the copies:
+
+  $ cat >> $HGRCPATH << EOF
+  > [experimental]
+  > evolution.createmarkers=True
+  > evolution.allowunstable=True
+  > EOF
+
+  $ newrepo
+  $ echo a > a
+  $ hg add a
+  $ hg ci -m "added a"
+  $ echo b > b
+  $ hg add b
+  $ hg ci -m "added b"
+
+  $ hg mv b b1
+  $ hg ci -m "rename b to b1"
+
+  $ hg up ".^"
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo d > d
+  $ hg add d
+  $ hg ci -m "added d"
+  created new head
+
+  $ echo baba >> b
+  $ hg ci --amend -m "added d"
+
+  $ hg log --git -pG --hidden -T "{rev}: {node|short} {desc}\n {phase} \n\n"
+  @  4: d70f3e12cfd9 added d
+  |   draft
+  |
+  |  diff --git a/b b/b
+  |  --- a/b
+  |  +++ b/b
+  |  @@ -1,1 +1,2 @@
+  |   b
+  |  +baba
+  |  diff --git a/d b/d
+  |  new file mode 100644
+  |  --- /dev/null
+  |  +++ b/d
+  |  @@ -0,0 +1,1 @@
+  |  +d
+  |
+  | x  3: c9241b0f2d5b added d
+  |/    draft
+  |
+  |    diff --git a/d b/d
+  |    new file mode 100644
+  |    --- /dev/null
+  |    +++ b/d
+  |    @@ -0,0 +1,1 @@
+  |    +d
+  |
+  | o  2: 5a4825cc2926 rename b to b1
+  |/    draft
+  |
+  |    diff --git a/b b/b1
+  |    rename from b
+  |    rename to b1
+  |
+  o  1: 5f6d8a4bf34a added b
+  |   draft
+  |
+  |  diff --git a/b b/b
+  |  new file mode 100644
+  |  --- /dev/null
+  |  +++ b/b
+  |  @@ -0,0 +1,1 @@
+  |  +b
+  |
+  o  0: 9092f1db7931 added a
+      draft
+  
+     diff --git a/a b/a
+     new file mode 100644
+     --- /dev/null
+     +++ b/a
+     @@ -0,0 +1,1 @@
+     +a
+  
+
+Grafting revision 4 on top of revision 2, showing that it respect the rename:
+
+  $ hg up 2 -q
+  $ hg graft -r 4 --base c9241b0f2d5b --hidden
+  grafting 4:d70f3e12cfd9 "added d" (tip)
+  merging b1 and b to b1
+
+  $ hg log --git -pG -l 1 -T "{rev}: {node|short} {desc}\n {phase} \n\n"
+  @  5: 54ee32fbd09a added d
+  |   draft
+  ~
+     diff --git a/b1 b/b1
+     --- a/b1
+     +++ b/b1
+     @@ -1,1 +1,2 @@
+      b
+     +baba
+  
+



To: khanchi97, #hg-reviewers
Cc: martinvonz, mercurial-devel


More information about the Mercurial-devel mailing list