Title: [275635] trunk/Tools
Revision
275635
Author
jbed...@apple.com
Date
2021-04-07 15:25:20 -0700 (Wed, 07 Apr 2021)

Log Message

[webkitscmpy] Handle multiple double-branch commits
https://bugs.webkit.org/show_bug.cgi?id=224251
<rdar://problem/76288547>

Reviewed by Dewei Zhu.

There are a few cases, namely on the safari-607-branch, where some commits where made both
on trunk and on a branch. In one notable case, two sequential commits were made this way.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn._cache_revisions): Handle multiple double-branch commits.
* Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn._cache_revisions): Handle multiple double-branch commits.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (275634 => 275635)


--- trunk/Tools/ChangeLog	2021-04-07 22:18:03 UTC (rev 275634)
+++ trunk/Tools/ChangeLog	2021-04-07 22:25:20 UTC (rev 275635)
@@ -1,3 +1,21 @@
+2021-04-07  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitscmpy] Handle multiple double-branch commits
+        https://bugs.webkit.org/show_bug.cgi?id=224251
+        <rdar://problem/76288547>
+
+        Reviewed by Dewei Zhu.
+
+        There are a few cases, namely on the safari-607-branch, where some commits where made both
+        on trunk and on a branch. In one notable case, two sequential commits were made this way.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
+        (Svn._cache_revisions): Handle multiple double-branch commits.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
+        (Svn._cache_revisions): Handle multiple double-branch commits.
+
 2021-04-07  Aakash Jain  <aakash_j...@apple.com>
 
         commit-queue should perform git reset --hard between retry attempts

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (275634 => 275635)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-04-07 22:18:03 UTC (rev 275634)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-04-07 22:25:20 UTC (rev 275635)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='0.13.8',
+    version='0.13.9',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (275634 => 275635)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-04-07 22:18:03 UTC (rev 275634)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-04-07 22:25:20 UTC (rev 275635)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(0, 13, 8)
+version = Version(0, 13, 9)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('monotonic', Version(1, 5)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py (275634 => 275635)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py	2021-04-07 22:18:03 UTC (rev 275634)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py	2021-04-07 22:25:20 UTC (rev 275635)
@@ -165,7 +165,7 @@
             if log.poll():
                 raise self.Exception("Failed to construct branch history for '{}'".format(branch))
 
-            was_last_on_default = False
+            default_count = 0
             line = log.stdout.readline()
             while line:
                 match = self.LOG_RE.match(line)
@@ -181,11 +181,12 @@
                         break
                     if not is_default_branch:
                         if revision in self._metadata_cache[self.default_branch]:
-                            if was_last_on_default:
+                            # Only handle 2 sequential cross-branch commits
+                            if default_count > 2:
                                 break
-                            was_last_on_default = True
+                            default_count += 1
                         else:
-                            was_last_on_default = False
+                            default_count = 0
                     self._metadata_cache[branch].insert(pos, revision)
                 line = log.stdout.readline()
         finally:
@@ -192,6 +193,8 @@
             if log:
                 log.kill()
 
+        if default_count:
+            self._metadata_cache[branch] = self._metadata_cache[branch][default_count - 1:]
         if self._metadata_cache[self.default_branch][0] == [0]:
             self._metadata_cache['identifier'] = len(self._metadata_cache[branch])
 

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py (275634 => 275635)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py	2021-04-07 22:18:03 UTC (rev 275634)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py	2021-04-07 22:25:20 UTC (rev 275635)
@@ -242,7 +242,7 @@
             if response.status_code != 200:
                 raise self.Exception("Failed to construct branch history for '{}'".format(branch))
 
-            was_last_on_default = False
+            default_count = 0
             for line in response.iter_lines():
                 match = self.HISTORY_RE.match(line)
                 if not match:
@@ -259,13 +259,16 @@
                     break
                 if not is_default_branch:
                     if revision in self._metadata_cache[self.default_branch]:
-                        if was_last_on_default:
+                        # Only handle 2 sequential cross-branch commits
+                        if default_count > 2:
                             break
-                        was_last_on_default = True
+                        default_count += 1
                     else:
-                        was_last_on_default = False
+                        default_count = 0
                 self._metadata_cache[branch].insert(pos, revision)
 
+        if default_count:
+            self._metadata_cache[branch] = self._metadata_cache[branch][default_count - 1:]
         if self._metadata_cache[self.default_branch][0] == [0]:
             self._metadata_cache['identifier'] = len(self._metadata_cache[branch])
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to