Title: [274214] trunk/Tools
Revision
274214
Author
[email protected]
Date
2021-03-10 07:49:01 -0800 (Wed, 10 Mar 2021)

Log Message

git-webkit should have an "info" command
https://bugs.webkit.org/show_bug.cgi?id=222846
<rdar://problem/75171053>

Reviewed by Ryosuke Niwa.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:
(main): Add Info command.
* Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info):
(Info.parser): Moved from Find.parser, exclude argument.
(Info.main): Moved from Find.main, add a default reference.
(Find):
(Find.parser): Invoke Info.parser.
(Find.main): Invoke Info.main with user's specified reference.
* Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (274213 => 274214)


--- trunk/Tools/ChangeLog	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/ChangeLog	2021-03-10 15:49:01 UTC (rev 274214)
@@ -1,3 +1,24 @@
+2021-03-10  Jonathan Bedard  <[email protected]>
+
+        git-webkit should have an "info" command
+        https://bugs.webkit.org/show_bug.cgi?id=222846
+        <rdar://problem/75171053>
+
+        Reviewed by Ryosuke Niwa.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:
+        (main): Add Info command.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
+        (Info):
+        (Info.parser): Moved from Find.parser, exclude argument.
+        (Info.main): Moved from Find.main, add a default reference.
+        (Find):
+        (Find.parser): Invoke Info.parser.
+        (Find.main): Invoke Info.main with user's specified reference.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
+
 2021-03-10  Michael Catanzaro  <[email protected]>
 
         [WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (274213 => 274214)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-03-10 15:49:01 UTC (rev 274214)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='0.12.5',
+    version='0.13.0',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (274213 => 274214)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-03-10 15:49:01 UTC (rev 274214)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(0, 12, 5)
+version = Version(0, 13, 0)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('monotonic', Version(1, 5)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py (274213 => 274214)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py	2021-03-10 15:49:01 UTC (rev 274214)
@@ -31,7 +31,7 @@
 from .clean import Clean
 from .command import Command
 from .checkout import Checkout
-from .find import Find
+from .find import Find, Info
 from .pull import Pull
 from .setup_git_svn import SetupGitSvn
 
@@ -57,7 +57,7 @@
 
     subparsers = parser.add_subparsers(help='sub-command help')
 
-    programs = [Find, Checkout, Canonicalize, Pull, Clean]
+    programs = [Find, Info, Checkout, Canonicalize, Pull, Clean]
     if subversion:
         programs.append(SetupGitSvn)
 

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py (274213 => 274214)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py	2021-03-10 15:49:01 UTC (rev 274214)
@@ -29,9 +29,9 @@
 from webkitscmpy import Commit, local
 
 
-class Find(Command):
-    name = 'find'
-    help = 'Given an identifier, revision or hash, normalize and print the commit'
+class Info(Command):
+    name = 'info'
+    help = 'Print information about the HEAD commit'
 
     @classmethod
     def parser(cls, parser, loggers=None):
@@ -55,16 +55,10 @@
             default=True,
         )
 
-        parser.add_argument(
-            'argument', nargs=1,
-            type=str, default=None,
-            help='String representation of a commit or branch to be normalized',
-        )
-
     @classmethod
-    def main(cls, args, repository, **kwargs):
+    def main(cls, args, repository, reference='HEAD', **kwargs):
         try:
-            commit = repository.find(args.argument[0], include_log=args.include_log)
+            commit = repository.find(reference, include_log=args.include_log)
         except (local.Scm.Exception, ValueError) as exception:
             # ValueErrors and Scm exceptions usually contain enough information to be displayed
             # to the user as an error
@@ -103,3 +97,22 @@
                 print(u'    {}'.format(line))
 
         return 0
+
+
+class Find(Command):
+    name = 'find'
+    help = 'Given an identifier, revision or hash, normalize and print the commit'
+
+    @classmethod
+    def parser(cls, parser, loggers=None):
+        Info.parser(parser, loggers=loggers)
+
+        parser.add_argument(
+            'argument', nargs=1,
+            type=str, default=None,
+            help='String representation of a commit or branch to be normalized',
+        )
+
+    @classmethod
+    def main(cls, args, repository, **kwargs):
+        return Info.main(args, repository=repository, reference=args.argument[0], **kwargs)

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py (274213 => 274214)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py	2021-03-10 14:57:46 UTC (rev 274213)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py	2021-03-10 15:49:01 UTC (rev 274214)
@@ -233,3 +233,31 @@
 Revision: 4
 '''.format(datetime.fromtimestamp(1601686700).strftime('%a %b %d %H:%M:%S %Y')),
         )
+
+
+class TestInfo(unittest.TestCase):
+    path = '/mock/repository'
+
+    def test_basic_git(self):
+        with OutputCapture() as captured, mocks.local.Git(self.path), mocks.local.Svn(), MockTime:
+            self.assertEqual(0, program.main(
+                args=('info', '-q'),
+                path=self.path,
+            ))
+        self.assertEqual(captured.stdout.getvalue(), '5@main | d8bce26fa65c | Patch Series\n')
+
+    def test_basic_git_svn(self):
+        with OutputCapture() as captured, mocks.local.Git(self.path, git_svn=True), mocks.local.Svn(), MockTime:
+            self.assertEqual(0, program.main(
+                args=('info', '-q'),
+                path=self.path,
+            ))
+        self.assertEqual(captured.stdout.getvalue(), '5@main | d8bce26fa65c, r9 | Patch Series\n')
+
+    def test_basic_svn(self):
+        with OutputCapture() as captured, mocks.local.Git(), mocks.local.Svn(self.path), MockTime:
+            self.assertEqual(0, program.main(
+                args=('info', '-q'),
+                path=self.path,
+            ))
+        self.assertEqual(captured.stdout.getvalue(), '4@trunk | r6 | 6th commit\n')
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to