Improve gclient Python 3 compatibility
This enables gclient sync and gclient runhooks to run, barring hook script failures.
git cl upload also now works.
The scripts still work with Python 2.
There are no intended behaviour changes.
Bug: 942522
Change-Id: I2ac587b5f803ba7f5bb5e412337ce049f4b1a741
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1524583
Commit-Queue: Raul Tambre <raul@tambre.ee>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
diff --git a/scm.py b/scm.py
index d7b70ea..43a68fd 100644
--- a/scm.py
+++ b/scm.py
@@ -4,8 +4,8 @@
"""SCM-specific utility classes."""
-import cStringIO
import glob
+import io
import logging
import os
import platform
@@ -51,7 +51,7 @@
filename = filename.replace(os.sep, '/')
nb_lines = len(file_content)
# We need to use / since patch on unix will fail otherwise.
- data = cStringIO.StringIO()
+ data = io.StringIO()
data.write("Index: %s\n" % filename)
data.write('=' * 67 + '\n')
# Note: Should we use /dev/null instead?
@@ -369,9 +369,9 @@
"""Asserts git's version is at least min_version."""
if cls.current_version is None:
current_version = cls.Capture(['--version'], '.')
- matched = re.search(r'version ([0-9\.]+)', current_version)
+ matched = re.search(r'version ([0-9\.]+)', current_version.decode())
cls.current_version = matched.group(1)
- current_version_list = map(only_int, cls.current_version.split('.'))
+ current_version_list = list(map(only_int, cls.current_version.split('.')))
for min_ver in map(int, min_version.split('.')):
ver = current_version_list.pop(0)
if ver < min_ver: