D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-22 Thread martinvonz (Martin von Zweigbergk)
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  When both sides of a merge have renamed a file to the same place, we
  would treat that as a "both created" action in merge.py. That means
  that we'd use an empty diffbase. It seems better to use the copy
  source as diffbase. That can be done by simply dropping code that
  prevented us from doing that. I think I did it that way in
  57203e0210f8 
 
(copies: calculate mergecopies() based on pathcopies(),
  2019-04-11) only to preserve the existing behavior. I also suspect it
  was just an accident that it behaved that way before that commit.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/copies.py
  tests/test-rename-merge2.t

CHANGE DETAILS

diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -513,7 +513,7 @@
   test L:nc a b R:up a b W:   - 14 merge b no ancestor
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
- src: 'a' -> dst: 'b' 
+ src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -522,19 +522,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -593,7 +589,7 @@
   test L:nc a b R:up a b W:   - 16 get a, merge b no ancestor
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
- src: 'a' -> dst: 'b' 
+ src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -602,19 +598,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -633,7 +625,7 @@
   test L:up a b R:nc a b W:   - 17 keep a, merge b no ancestor
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
- src: 'a' -> dst: 'b' 
+ src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -641,19 +633,15 @@
preserving b for resolve of b
preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
+  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False 

D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-24 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.


  I'll insert another patch with another fun test case before this patch soon

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers
Cc: marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-24 Thread martinvonz (Martin von Zweigbergk)
martinvonz edited the summary of this revision.
martinvonz updated this revision to Diff 19568.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7974?vs=19526&id=19568

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

AFFECTED FILES
  mercurial/copies.py
  tests/test-rename-merge1.t
  tests/test-rename-merge2.t

CHANGE DETAILS

diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -529,7 +529,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -538,19 +538,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -611,7 +607,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -620,19 +616,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -652,7 +644,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on remote side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -660,19 +652,15 @@
preserving b for resolve of b
preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
+  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404d

D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-29 Thread durin42 (Augie Fackler)
This revision now requires changes to proceed.
durin42 added a comment.
durin42 requested changes to this revision.


  This one needs rebased.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-29 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.


  In D7974#118492 , @durin42 wrote:
  
  > This one needs rebased.
  
  Done.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-29 Thread martinvonz (Martin von Zweigbergk)
martinvonz updated this revision to Diff 19689.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7974?vs=19568&id=19689

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

AFFECTED FILES
  mercurial/copies.py
  tests/test-rename-merge1.t
  tests/test-rename-merge2.t

CHANGE DETAILS

diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -529,7 +529,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -538,19 +538,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -611,7 +607,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -620,19 +616,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -652,7 +644,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on remote side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -660,19 +652,15 @@
preserving b for resolve of b
preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
+  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
@@ -692,7 +680,7 @@
   --

D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-30 Thread pulkit (Pulkit Goyal)
pulkit added a comment.


  `test-rename-merge1.t` fails with this patch. Looks like there is one more 
instance of prompt which is not needed anymore. I didn't amend that in flight 
as I was not sure.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42, pulkit
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-30 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.


  In D7974#118682 , @pulkit wrote:
  
  > `test-rename-merge1.t` fails with this patch. Looks like there is one more 
instance of prompt which is not needed anymore. I didn't amend that in flight 
as I was not sure.
  
  I'm pretty sure it's flaky for some reason. Augie also mentioned that that 
test failed on one of my patches. I ran it 100 times with different python 
hashes and it never failed for me. I don't know why it behaves differently 
sometimes. I'm not even sure it started failing with this patch. Does it fail 
consistently on this one for you? Does it pass consistently on @?

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42, pulkit
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-30 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.


  In D7974#118685 , @martinvonz 
wrote:
  
  > In D7974#118682 , @pulkit 
wrote:
  >
  >> `test-rename-merge1.t` fails with this patch. Looks like there is one more 
instance of prompt which is not needed anymore. I didn't amend that in flight 
as I was not sure.
  >
  > I'm pretty sure it's flaky for some reason. Augie also mentioned that that 
test failed on one of my patches. I ran it 100 times with different python 
hashes and it never failed for me. I don't know why it behaves differently 
sometimes. I'm not even sure it started failing with this patch. Does it fail 
consistently on this one for you? Does it pass consistently on @?
  
  Oh, and note that `--runs-per-test=100` will run the test 100 times with the 
*same* python hash.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42, pulkit
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-31 Thread pulkit (Pulkit Goyal)
pulkit added a comment.


  I am seeing this failure, hope it helps:
  
(vm)~/repo/hgpush/tests$ ./run-tests.py test-rename-merge1.t  
running 1 tests using 1 parallel processes  


--- /home/pulkit/repo/hgpush/tests/test-rename-merge1.t
+++ /home/pulkit/repo/hgpush/tests/test-rename-merge1.t.err 
 
@@ -219,16 +219,6 @@
  
ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508
preserving z for resolve of z  
   starting 4 threads for background file closing (?) 
-   x: prompt changed/deleted -> m (premerge)   
-  picked tool ':prompt' for x (binary False symlink False changedelete 
True)
-  file 'x' was deleted in other [merge rev] but was modified in local 
[working copy].
-  You can use (c)hanged version, (d)elete, or leave (u)nresolved.  
  
-  What do you want to do? u  
-   y: prompt deleted/changed -> m (premerge)   
 
-  picked tool ':prompt' for y (binary False symlink False changedelete 
True)
-  file 'y' was deleted in local [working copy] but was modified in other 
[merge rev].
-  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
-  What do you want to do? u 
z: both renamed from y -> m (premerge)
   picked tool ':merge3' for z (binary False symlink False changedelete 
False)  
   merging z
 
ERROR: test-rename-merge1.t output changed  
 
!   
  
Failed test-rename-merge1.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: 3001008644

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42, pulkit
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-31 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.


  In D7974#118853 , @pulkit wrote:
  
  > I am seeing this failure, hope it helps:
  >
  >   (vm)~/repo/hgpush/tests$ ./run-tests.py test-rename-merge1.t  
  >   running 1 tests using 1 parallel processes
  
  >   --- /home/pulkit/repo/hgpush/tests/test-rename-merge1.t
  >   +++ /home/pulkit/repo/hgpush/tests/test-rename-merge1.t.err   
   
  >   @@ -219,16 +219,6 @@  

  >   ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508
  >   preserving z for resolve of z  
  >  starting 4 threads for background file closing (?) 
  >   -   x: prompt changed/deleted -> m (premerge)   
  >   -  picked tool ':prompt' for x (binary False symlink False changedelete 
True)
  >   -  file 'x' was deleted in other [merge rev] but was modified in local 
[working copy].
  >   -  You can use (c)hanged version, (d)elete, or leave (u)nresolved.

  >   -  What do you want to do? u  
  >   -   y: prompt deleted/changed -> m (premerge) 
   
  >   -  picked tool ':prompt' for y (binary False symlink False changedelete 
True)
  >   -  file 'y' was deleted in local [working copy] but was modified in other 
[merge rev].
  >   -  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
  >   -  What do you want to do? u 
  >   z: both renamed from y -> m (premerge)
  >  picked tool ':merge3' for z (binary False symlink False changedelete 
False)  
  >  merging z  
  
  >   ERROR: test-rename-merge1.t output changed
   
  >   ! 

  >   Failed test-rename-merge1.t: output changed
  >   # Ran 1 tests, 0 skipped, 1 failed.
  >   python hash seed: 3001008644
  
  Consistently?

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

To: martinvonz, #hg-reviewers, durin42, pulkit
Cc: durin42, marmoute, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-01-31 Thread martinvonz (Martin von Zweigbergk)
martinvonz edited the summary of this revision.
martinvonz updated this revision to Diff 19803.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7974?vs=19689&id=19803

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

AFFECTED FILES
  mercurial/copies.py
  tests/test-rename-merge1.t
  tests/test-rename-merge2.t

CHANGE DETAILS

diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -529,7 +529,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -538,19 +538,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -611,7 +607,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -620,19 +616,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -652,7 +644,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on remote side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -660,19 +652,15 @@
preserving b for resolve of b
preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
+  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404d

D7974: merge: when rename was made on both sides, use ancestor as merge base

2020-02-03 Thread martinvonz (Martin von Zweigbergk)
Closed by commit rHGb4057d001760: merge: when rename was made on both sides, 
use ancestor as merge base (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs 
Review".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7974?vs=19803&id=19851

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7974/new/

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

AFFECTED FILES
  mercurial/copies.py
  tests/test-rename-merge1.t
  tests/test-rename-merge2.t

CHANGE DETAILS

diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -529,7 +529,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -538,19 +538,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -611,7 +607,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on local side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -620,19 +616,15 @@
preserving rev for resolve of rev
a: remote is newer -> g
   getting a
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
+  my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions differ -> m (merge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -652,7 +644,7 @@
   --
 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
  on remote side:
-  src: 'a' -> dst: 'b' 
+  src: 'a' -> dst: 'b' *
 checking for directory renames
   resolving manifests
branchmerge: True, force: False, partial: False
@@ -660,19 +652,15 @@
preserving b for resolve of b
preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
-   b: both created -> m (premerge)
+   b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
   merging b
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
+  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
+   premerge successful
rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete 
False) (glob)
   merging rev
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
-   b: both created -> m (merge)
-  picked tool '* ../merge' for b (binary False symlink False changedelete 
False) (glob)
-  my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@
-  launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
-  merge tool returned: 0
rev: versions diffe