changeset 4438:a6bdb02a1902

evolve: warn user if cset desc is being lost In public divergence when merging results in same as public cset, we only create markers to solve the divergence i.e. [(public, (other,))] In this case if other cset had a desc which was different from public that will be lost. So this print out a warning message to user that desc of non-public cset is being lost. Changes in test files reflect the added behaviour.
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Sat, 09 Mar 2019 19:25:34 +0530
parents da2fdaa3d97c
children 2eafdca7ba4b
files hgext3rd/evolve/evolvecmd.py tests/test-evolve-public-content-divergent.t
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/evolve/evolvecmd.py	Sun Mar 10 18:00:08 2019 +0100
+++ b/hgext3rd/evolve/evolvecmd.py	Sat Mar 09 19:25:34 2019 +0530
@@ -582,6 +582,11 @@
         # check if node to be committed has changes same as public one
         s = publicdiv.status()
         if not (s.added or s.removed or s.deleted or s.modified):
+            # warn user if metadata is being lost
+            if otherdiv.description() != publicdiv.description():
+                msg = _('content-divergent changesets differ by descriptions '
+                        'only, discarding %s\n') % str(otherdiv)
+                repo.ui.warn(msg)
             # no changes, create markers to resolve divergence
             obsolete.createmarkers(repo, [(otherdiv, (publicdiv,))],
                                    operation='evolve')
--- a/tests/test-evolve-public-content-divergent.t	Sun Mar 10 18:00:08 2019 +0100
+++ b/tests/test-evolve-public-content-divergent.t	Sat Mar 09 19:25:34 2019 +0530
@@ -867,6 +867,7 @@
   base: [2] added c
   merging "other" content-divergent changeset '90522bccf499'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  content-divergent changesets differ by descriptions only, discarding 90522bccf499
 
   $ hg evolve -l
 
@@ -962,6 +963,7 @@
   updating to "local" side of the conflict: e800202333a4
   merging "other" content-divergent changeset 'ae3429430ef1'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  content-divergent changesets differ by descriptions only, discarding ae3429430ef1
 
   $ hg evolve -l
 
@@ -1069,6 +1071,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
+  content-divergent changesets differ by descriptions only, discarding 229da2719b19
   working directory is now at f7c1071f1e7c
 
   $ hg evolve -l
@@ -1176,6 +1179,7 @@
   updating to "local" side of the conflict: e800202333a4
   merging "other" content-divergent changeset 'bc309da55b88'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  content-divergent changesets differ by descriptions only, discarding bc309da55b88
   working directory is now at e800202333a4
 
   $ hg evolve -l
@@ -1281,6 +1285,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
+  content-divergent changesets differ by descriptions only, discarding a5bbf2042450
   working directory is now at e800202333a4
 
   $ hg evolve -l
@@ -1400,6 +1405,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
+  content-divergent changesets differ by descriptions only, discarding 09054d1f3c97
   working directory is now at e800202333a4
 
   $ hg evolve -l