Title: [293667] trunk/Tools
Revision
293667
Author
jbed...@apple.com
Date
2022-05-02 09:57:43 -0700 (Mon, 02 May 2022)

Log Message

[git-webkit] log should support ranges
https://bugs.webkit.org/show_bug.cgi?id=239510
<rdar://problem/92031167>

Reviewed by Ryan Haddad.

* Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
(FilteredCommand.replace): Break logic converting a substring into a revision or hash into a function.
(FilteredCommand.main): If an argument can be split by ..., convert it's substrings into revisions/hashes.

Canonical link: https://commits.webkit.org/250171@main

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (293666 => 293667)


--- trunk/Tools/ChangeLog	2022-05-02 16:52:55 UTC (rev 293666)
+++ trunk/Tools/ChangeLog	2022-05-02 16:57:43 UTC (rev 293667)
@@ -1,3 +1,17 @@
+2022-05-02  Jonathan Bedard  <jbed...@apple.com>
+
+        [git-webkit] log should support ranges
+        https://bugs.webkit.org/show_bug.cgi?id=239510
+        <rdar://problem/92031167>
+
+        Reviewed by Ryan Haddad.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
+        (FilteredCommand.replace): Break logic converting a substring into a revision or hash into a function.
+        (FilteredCommand.main): If an argument can be split by ..., convert it's substrings into revisions/hashes.
+
 2022-05-02  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [iOS] Add support for the "Markup Image" action when right clicking an image in editable content

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (293666 => 293667)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2022-05-02 16:52:55 UTC (rev 293666)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2022-05-02 16:57:43 UTC (rev 293667)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='4.12.1',
+    version='4.12.2',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (293666 => 293667)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2022-05-02 16:52:55 UTC (rev 293666)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2022-05-02 16:57:43 UTC (rev 293667)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(4, 12, 1)
+version = Version(4, 12, 2)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('jinja2', Version(2, 11, 3)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py (293666 => 293667)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py	2022-05-02 16:52:55 UTC (rev 293666)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py	2022-05-02 16:57:43 UTC (rev 293667)
@@ -146,6 +146,18 @@
             return FilteredCommand.main(args, repository, command=cls.name, **kwargs)
 
     @classmethod
+    def replace(cls, arg, repository):
+        parsed = Commit.parse(arg, do_assert=False)
+        if not parsed:
+            return None
+        replacement = None
+        if repository.is_svn:
+            replacement = repository.cache.to_revision(hash=parsed.hash, identifier=str(parsed) if parsed.identifier else None)
+        if repository.is_git:
+            replacement = repository.cache.to_hash(revision=parsed.revision, identifier=str(parsed) if parsed.identifier else None)
+        return replacement
+
+    @classmethod
     def main(cls, args, repository, command=None, representation=None, **kwargs):
         if not repository:
             sys.stderr.write('No repository provided\n')
@@ -170,16 +182,16 @@
             return 1
 
         for index in range(len(args)):
-            parsed = Commit.parse(args[index], do_assert=False)
-            if parsed:
-                replacement = None
-                if repository.is_svn:
-                    replacement = repository.cache.to_revision(hash=parsed.hash, identifier=str(parsed) if parsed.identifier else None)
-                if repository.is_git:
-                    replacement = repository.cache.to_hash(revision=parsed.revision, identifier=str(parsed) if parsed.identifier else None)
-                if replacement:
-                    args[index] = replacement
+            replacement = cls.replace(args[index], repository)
+            if replacement:
+                args[index] = replacement
                 continue
+            split = args[index].split('...')
+            if len(split) > 1:
+                args[index] = '...'.join([
+                    cls.replace(component, repository) or component for component in split
+                ])
+                continue
 
             for candidate in [
                 os.path.abspath(os.path.join(os.getcwd(), args[index])),
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to