Changeset 270254 in webkit
- Timestamp:
- Nov 30, 2020 11:23:08 AM (3 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r270247 r270254 1 2020-11-30 Jonathan Bedard <jbedard@apple.com> 2 3 [webkitscmpy] Support remote repositories in git-webkit 4 https://bugs.webkit.org/show_bug.cgi?id=219172 5 <rdar://problem/71594909> 6 7 Rubber-stamped by Aakash Jain. 8 9 * Scripts/libraries/webkitscmpy/webkitscmpy/program.py: 10 (Command.parser): Remove repository, since it depends on the parser. 11 (Command.main): Support arguments to main functions. 12 (Find.parser): Remove repository, since it depends on the parser. 13 (Checkout.parser): Ditto. 14 (Checkout.main): Early return if specified repository is remote. 15 (main): Construct repository based on path argument. 16 * Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py: 17 (TestCheckout): 18 (TestCheckout.test_checkout_remote): 19 * Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py: 20 (TestFind.test_baisc_svn_remote): 21 1 22 2020-11-30 Jonathan Bedard <jbedard@apple.com> 2 23 -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
r270038 r270254 47 47 ) 48 48 49 version = Version(0, 4, 0)49 version = Version(0, 4, 1) 50 50 51 51 AutoInstall.register(Package('dateutil', Version(2, 8, 1), pypi_name='python-dateutil')) -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program.py
r269401 r270254 29 29 from datetime import datetime 30 30 from webkitcorepy import arguments, log as webkitcorepy_log 31 from webkitscmpy import Commit, local, log 31 from webkitscmpy import Commit, local, log, remote 32 32 33 33 … … 37 37 38 38 @classmethod 39 def parser(cls, parser , repository):39 def parser(cls, parser): 40 40 if cls.name is None: 41 41 raise NotImplementedError('Command does not have a name') … … 44 44 45 45 @classmethod 46 def main(cls, repository):46 def main(cls, args, repository): 47 47 sys.stderr.write('No command specified\n') 48 48 return -1 … … 54 54 55 55 @classmethod 56 def parser(cls, parser, repository,loggers=None):56 def parser(cls, parser, loggers=None): 57 57 arguments.LoggingGroup( 58 58 parser, … … 122 122 123 123 @classmethod 124 def parser(cls, parser, repository,loggers=None):124 def parser(cls, parser, loggers=None): 125 125 arguments.LoggingGroup( 126 126 parser, … … 137 137 @classmethod 138 138 def main(cls, args, repository): 139 if not repository.path: 140 sys.stderr.write("Cannot checkout on remote repository") 141 return 1 142 139 143 try: 140 144 commit = repository.checkout(args.argument[0]) … … 156 160 loggers = [logging.getLogger(), webkitcorepy_log, log] + (loggers or []) 157 161 158 repository = local.Scm.from_path(path=path or os.getcwd())159 160 162 parser = argparse.ArgumentParser( 161 163 description='Custom git tooling from the WebKit team to interact with a ' + … … 163 165 ) 164 166 arguments.LoggingGroup(parser) 167 168 group = parser.add_argument_group('Repository') 169 group.add_argument( 170 '--path', '-p', '-C', 171 dest='repository', default=path or os.getcwd(), 172 help='Set the repository path or URL to be used', 173 action='store', 174 ) 175 165 176 subparsers = parser.add_subparsers(help='sub-command help') 166 177 … … 168 179 subparser = subparsers.add_parser(program.name, help=program.help) 169 180 subparser.set_defaults(main=program.main) 170 program.parser(subparser, repository=repository,loggers=loggers)181 program.parser(subparser, loggers=loggers) 171 182 172 183 parsed = parser.parse_args(args=args) 173 184 185 if parsed.repository.startswith(('https://', 'http://')): 186 repository = remote.Scm.from_url(parsed.repository) 187 else: 188 repository = local.Scm.from_path(path=parsed.repository) 189 174 190 return parsed.main(args=parsed, repository=repository) -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py
r269401 r270254 63 63 64 64 self.assertEqual(4, local.Svn(self.path).commit().revision) 65 66 def test_checkout_remote(self): 67 with mocks.remote.Svn(), OutputCapture(): 68 self.assertEqual(1, program.main( 69 args=('-C', 'https://svn.webkit.org/repository/webkit', 'checkout', '3@trunk'), 70 path=self.path, 71 )) -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py
r269117 r270254 53 53 self.assertEqual(0, program.main( 54 54 args=('find', 'HEAD', '-q'), 55 path=self.path, 56 )) 57 self.assertEqual(captured.stdout.getvalue(), '4@trunk | r6 | 6th commit\n') 58 59 def test_basic_svn_remote(self): 60 with mocks.remote.Svn(), OutputCapture() as captured: 61 self.assertEqual(0, program.main( 62 args=('-C', 'https://svn.webkit.org/repository/webkit', 'find', 'HEAD', '-q'), 55 63 path=self.path, 56 64 ))
Note: See TracChangeset
for help on using the changeset viewer.