[Python-checkins] r88807 - tracker/instances/python-dev/scripts/addpatchsets

martin.v.loewis python-checkins at python.org
Sat Mar 26 19:26:42 CET 2011


Author: martin.v.loewis
Date: Sat Mar 26 19:26:41 2011
New Revision: 88807

Log:
Support --git-style diffs.


Modified:
   tracker/instances/python-dev/scripts/addpatchsets

Modified: tracker/instances/python-dev/scripts/addpatchsets
==============================================================================
--- tracker/instances/python-dev/scripts/addpatchsets	(original)
+++ tracker/instances/python-dev/scripts/addpatchsets	Sat Mar 26 19:26:41 2011
@@ -57,7 +57,7 @@
     patches = []
     filename = None
     for line in data.splitlines(True):
-        if line.startswith('diff -r'):
+        if line.startswith('diff '):
             if filename:
                 chunks = patching.ParsePatchToChunks(diff)
                 if not chunks:
@@ -66,6 +66,9 @@
                 patches.append((filename, ''.join(diff), chunks))
             diff = []
             filename = line.split()[-1]
+            if filename.startswith("b/"):
+                # git style
+                filename = filename[2:]
             continue
         if filename:
             diff.append(line)
@@ -78,13 +81,14 @@
     return patches
 
 def find_bases(data):
-    if not data.startswith("diff -r "):
+    if not data.startswith("diff "):
         # this should only be called if there is actually is a diff in the file
-        head, tail = data.split("\ndiff -r ", 1)
-        data = "diff -r "+tail
-    first, second, rev = data.split()[:3]
-    if first != 'diff' or second != '-r' or len(rev) != 12:
-        return None, None
+        head, tail = data.split("\ndiff ", 1)
+        data = "diff "+tail
+    # default to default branch if no revision is found
+    rev = 'default'
+    if data.startswith("diff -r "):
+        first, second, rev = data.split()[:3]
     c = connection.cursor()
     pieces = hg_splitpatch(data)
     if not pieces:
@@ -128,7 +132,7 @@
         print filename,"not found"
         continue
     data = open(filename).read()
-    if not data.startswith('diff -r ') and data.find('\ndiff -r ')==-1:
+    if not data.startswith('diff ') and data.find('\ndiff ')==-1:
         if verbose:
             print filename, "is not a patch"
         continue


More information about the Python-checkins mailing list