⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 274214 in webkit


Ignore:
Timestamp:
Mar 10, 2021, 7:49:01 AM (6 years ago)
Author:
Jonathan Bedard
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:
Location:
trunk/Tools
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r274210 r274214  
     12021-03-10  Jonathan Bedard  <jbedard@apple.com>
     2
     3        git-webkit should have an "info" command
     4        https://bugs.webkit.org/show_bug.cgi?id=222846
     5        <rdar://problem/75171053>
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
     10        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
     11        * Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:
     12        (main): Add Info command.
     13        * Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
     14        (Info):
     15        (Info.parser): Moved from Find.parser, exclude argument.
     16        (Info.main): Moved from Find.main, add a default reference.
     17        (Find):
     18        (Find.parser): Invoke Info.parser.
     19        (Find.main): Invoke Info.main with user's specified reference.
     20        * Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
     21
    1222021-03-10  Michael Catanzaro  <mcatanzaro@gnome.org>
    223
  • trunk/Tools/Scripts/libraries/webkitscmpy/setup.py

    r274127 r274214  
    3030setup(
    3131    name='webkitscmpy',
    32     version='0.12.5',
     32    version='0.13.0',
    3333    description='Library designed to interact with git and svn repositories.',
    3434    long_description=readme(),
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py

    r274127 r274214  
    4747    )
    4848
    49 version = Version(0, 12, 5)
     49version = Version(0, 13, 0)
    5050
    5151AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py

    r273142 r274214  
    3232from .command import Command
    3333from .checkout import Checkout
    34 from .find import Find
     34from .find import Find, Info
    3535from .pull import Pull
    3636from .setup_git_svn import SetupGitSvn
     
    5858    subparsers = parser.add_subparsers(help='sub-command help')
    5959
    60     programs = [Find, Checkout, Canonicalize, Pull, Clean]
     60    programs = [Find, Info, Checkout, Canonicalize, Pull, Clean]
    6161    if subversion:
    6262        programs.append(SetupGitSvn)
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py

    r273005 r274214  
    3030
    3131
    32 class Find(Command):
    33     name = 'find'
    34     help = 'Given an identifier, revision or hash, normalize and print the commit'
     32class Info(Command):
     33    name = 'info'
     34    help = 'Print information about the HEAD commit'
    3535
    3636    @classmethod
     
    5656        )
    5757
    58         parser.add_argument(
    59             'argument', nargs=1,
    60             type=str, default=None,
    61             help='String representation of a commit or branch to be normalized',
    62         )
    63 
    6458    @classmethod
    65     def main(cls, args, repository, **kwargs):
     59    def main(cls, args, repository, reference='HEAD', **kwargs):
    6660        try:
    67             commit = repository.find(args.argument[0], include_log=args.include_log)
     61            commit = repository.find(reference, include_log=args.include_log)
    6862        except (local.Scm.Exception, ValueError) as exception:
    6963            # ValueErrors and Scm exceptions usually contain enough information to be displayed
     
    10498
    10599        return 0
     100
     101
     102class Find(Command):
     103    name = 'find'
     104    help = 'Given an identifier, revision or hash, normalize and print the commit'
     105
     106    @classmethod
     107    def parser(cls, parser, loggers=None):
     108        Info.parser(parser, loggers=loggers)
     109
     110        parser.add_argument(
     111            'argument', nargs=1,
     112            type=str, default=None,
     113            help='String representation of a commit or branch to be normalized',
     114        )
     115
     116    @classmethod
     117    def main(cls, args, repository, **kwargs):
     118        return Info.main(args, repository=repository, reference=args.argument[0], **kwargs)
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py

    r273765 r274214  
    234234'''.format(datetime.fromtimestamp(1601686700).strftime('%a %b %d %H:%M:%S %Y')),
    235235        )
     236
     237
     238class TestInfo(unittest.TestCase):
     239    path = '/mock/repository'
     240
     241    def test_basic_git(self):
     242        with OutputCapture() as captured, mocks.local.Git(self.path), mocks.local.Svn(), MockTime:
     243            self.assertEqual(0, program.main(
     244                args=('info', '-q'),
     245                path=self.path,
     246            ))
     247        self.assertEqual(captured.stdout.getvalue(), '5@main | d8bce26fa65c | Patch Series\n')
     248
     249    def test_basic_git_svn(self):
     250        with OutputCapture() as captured, mocks.local.Git(self.path, git_svn=True), mocks.local.Svn(), MockTime:
     251            self.assertEqual(0, program.main(
     252                args=('info', '-q'),
     253                path=self.path,
     254            ))
     255        self.assertEqual(captured.stdout.getvalue(), '5@main | d8bce26fa65c, r9 | Patch Series\n')
     256
     257    def test_basic_svn(self):
     258        with OutputCapture() as captured, mocks.local.Git(), mocks.local.Svn(self.path), MockTime:
     259            self.assertEqual(0, program.main(
     260                args=('info', '-q'),
     261                path=self.path,
     262            ))
     263        self.assertEqual(captured.stdout.getvalue(), '4@trunk | r6 | 6th commit\n')
Note: See TracChangeset for help on using the changeset viewer.