diff mercurial/simplemerge.py @ 21272:4aeb7a6029ba

merge: prevent simplemerge from mutating label list simplemerge was using list.pop() to remove items from the labels list. This mutated the list and made it unusable by other calls (for instance, it might be used in both the premerge and actual merge stages).
author Durham Goode <durham@fb.com>
date Thu, 08 May 2014 16:33:06 -0700
parents e34106fa0dc3
children f18830651811
line wrap: on
line diff
--- a/mercurial/simplemerge.py	Fri May 09 08:44:53 2014 +0900
+++ b/mercurial/simplemerge.py	Thu May 08 16:33:06 2014 -0700
@@ -416,11 +416,11 @@
     name_a = local
     name_b = other
     labels = opts.get('label', [])
-    if labels:
-        name_a = labels.pop(0)
-    if labels:
-        name_b = labels.pop(0)
-    if labels:
+    if len(labels) > 0:
+        name_a = labels[0]
+    if len(labels) > 1:
+        name_b = labels[1]
+    if len(labels) > 2:
         raise util.Abort(_("can only specify two labels."))
 
     try: