Index: scm.py |
diff --git a/scm.py b/scm.py |
index 5b2c8eafa10277241d8fd41eeb54db3bfbff8c77..00364cae4c82f2bf181db2f5ffca83626857a518 100644 |
--- a/scm.py |
+++ b/scm.py |
@@ -92,11 +92,15 @@ class GIT(object): |
results = [] |
if status: |
for statusline in status.splitlines(): |
- m = re.match('^(\w)\t(.+)$', statusline) |
+ # 3-way merges can cause the status can be 'MMM' instead of 'M'. This |
+ # can happen when the user has 2 local branches and he diffs between |
+ # these 2 branches instead diffing to upstream. |
+ m = re.match('^(\w)+\t(.+)$', statusline) |
if not m: |
raise gclient_utils.Error( |
'status currently unsupported: %s' % statusline) |
- results.append(('%s ' % m.group(1), m.group(2))) |
+ # Only grab the first letter. |
+ results.append(('%s ' % m.group(1)[0], m.group(2))) |
return results |
@staticmethod |