[PATCH 04 of 10] py3: pass dict.items() to list() to obtain a list

Pulkit Goyal 7895pulkit at gmail.com
Wed May 31 17:47:00 EDT 2017


# HG changeset patch
# User Pulkit Goyal <7895pulkit at gmail.com>
# Date 1496259842 -19800
#      Thu Jun 01 01:14:02 2017 +0530
# Node ID 66f3c6ec7827f4bc1d28673c0478ca42d60656ed
# Parent  25718d4a6de987771b43874573e1095c9cfc5ab2
py3: pass dict.items() to list() to obtain a list

dict.items() returned a list on Python 2 and whereas on Python 3 it returns a
view object, so we need to pass it into list() to get a list.

diff --git a/mercurial/copies.py b/mercurial/copies.py
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -419,8 +419,9 @@
     for f in u2u:
         _checkcopies(c2, f, m2, m1, base, tca, dirtyc2, limit, data2)
 
-    copy = dict(data1['copy'].items() + data2['copy'].items())
-    fullcopy = dict(data1['fullcopy'].items() + data2['fullcopy'].items())
+    copy = dict(list(data1['copy'].items()) + list(data2['copy'].items()))
+    fullcopy = dict(list(data1['fullcopy'].items()) +
+                                        list(data2['fullcopy'].items()))
 
     if dirtyc1:
         _combinecopies(data2['incomplete'], data1['incomplete'], copy, diverge,


More information about the Mercurial-devel mailing list