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).
--- 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: