Title: [271748] trunk/Tools
Revision
271748
Author
[email protected]
Date
2021-01-22 09:53:23 -0800 (Fri, 22 Jan 2021)

Log Message

[webkitscmpy] Map alternative default branch names
https://bugs.webkit.org/show_bug.cgi?id=220865
<rdar://problem/73502370>

Reviewed by Aakash Jain.

As WebKit transitions from Subversion to Git, our default branch is changing from
trunk to main. This change allow identifiers with 'main' in them to work in Subversion checkouts.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.find): Map set of common default branches to this repository's default branch.
* Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.find): Map set of common default branches to this repository's default branch.
* Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.find): Map set of common default branches to this repository's default branch.
* Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_alternative_default_branch):
(TestGitHub.test_alternative_default_branch):
* Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn.test_alternative_default_branch):
(TestRemoteSvn.test_alternative_default_branch):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (271747 => 271748)


--- trunk/Tools/ChangeLog	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/ChangeLog	2021-01-22 17:53:23 UTC (rev 271748)
@@ -1,3 +1,29 @@
+2021-01-22  Jonathan Bedard  <[email protected]>
+
+        [webkitscmpy] Map alternative default branch names
+        https://bugs.webkit.org/show_bug.cgi?id=220865
+        <rdar://problem/73502370>
+
+        Reviewed by Aakash Jain.
+
+        As WebKit transitions from Subversion to Git, our default branch is changing from
+        trunk to main. This change allow identifiers with 'main' in them to work in Subversion checkouts.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
+        (Git.find): Map set of common default branches to this repository's default branch.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
+        (GitHub.find): Map set of common default branches to this repository's default branch.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
+        (ScmBase.find): Map set of common default branches to this repository's default branch.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
+        (TestGit.test_alternative_default_branch):
+        (TestGitHub.test_alternative_default_branch):
+        * Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
+        (TestLocalSvn.test_alternative_default_branch):
+        (TestRemoteSvn.test_alternative_default_branch):
+
 2021-01-22  Lauro Moura  <[email protected]>
 
         [WebDriver] Add info about importing tests

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -30,7 +30,7 @@
 
 setup(
     name='webkitscmpy',
-    version='0.9.4',
+    version='0.9.5',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(0, 9, 4)
+version = Version(0, 9, 5)
 
 AutoInstall.register(Package('entrypoints', Version(0, 3, 0)))
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -272,8 +272,14 @@
         if not isinstance(argument, six.string_types):
             raise ValueError("Expected 'argument' to be a string, not '{}'".format(type(argument)))
 
+        if argument in self.DEFAULT_BRANCHES:
+            argument = self.default_branch
+
         parsed_commit = Commit.parse(argument, do_assert=False)
         if parsed_commit:
+            if parsed_commit.branch in self.DEFAULT_BRANCHES:
+                parsed_commit.branch = self.default_branch
+
             return self.commit(
                 hash=parsed_commit.hash,
                 revision=parsed_commit.revision,

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -340,8 +340,14 @@
         if not isinstance(argument, six.string_types):
             raise ValueError("Expected 'argument' to be a string, not '{}'".format(type(argument)))
 
+        if argument in self.DEFAULT_BRANCHES:
+            argument = self.default_branch
+
         parsed_commit = Commit.parse(argument, do_assert=False)
         if parsed_commit:
+            if parsed_commit.branch in self.DEFAULT_BRANCHES:
+                parsed_commit.branch = self.default_branch
+
             return self.commit(
                 hash=parsed_commit.hash,
                 revision=parsed_commit.revision,

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -38,6 +38,7 @@
     DEV_BRANCHES = re.compile(r'.*[(eng)(dev)(bug)]/.+')
     PROD_BRANCHES = re.compile(r'\S+-[\d+\.]+-branch')
     GIT_SVN_REVISION = re.compile(r'git-svn-id: \S+:\/\/.+@(?P<revision>\d+) .+-.+-.+-.+')
+    DEFAULT_BRANCHES = ['main', 'master', 'trunk']
 
     def __init__(self, dev_branches=None, prod_branches=None, contributors=None):
         self.dev_branches = dev_branches or self.DEV_BRANCHES
@@ -99,6 +100,9 @@
                 offset += int(s) if s else 1
             argument = argument.split('~')[0]
 
+        if argument in self.DEFAULT_BRANCHES:
+            argument = self.default_branch
+
         if argument == 'HEAD':
             result = self.commit(include_log=include_log)
 
@@ -113,6 +117,9 @@
                 raise ValueError("'~' offsets are not supported for revisions and identifiers")
 
             parsed_commit = Commit.parse(argument)
+            if parsed_commit.branch in self.DEFAULT_BRANCHES:
+                parsed_commit.branch = self.default_branch
+
             return self.commit(
                 hash=parsed_commit.hash,
                 revision=parsed_commit.revision,

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -266,6 +266,11 @@
             with mock:
                 self.assertIsNone(local.Git(self.path).commit(identifier='4@main', include_log=False).message)
 
+    def test_alternative_default_branch(self):
+        for mock in [mocks.local.Git(self.path), mocks.local.Git(self.path, git_svn=True)]:
+            with mock:
+                self.assertEqual(str(local.Git(self.path).find('4@trunk')), '4@main')
+                self.assertEqual(str(local.Git(self.path).find('4@master')), '4@main')
 
 class TestGitHub(unittest.TestCase):
     remote = 'https://github.example.com/WebKit/webkit'
@@ -368,3 +373,8 @@
     def test_no_log(self):
         with mocks.remote.GitHub():
             self.assertIsNone(remote.GitHub(self.remote).commit(identifier='4@main', include_log=False).message)
+
+    def test_alternative_default_branch(self):
+        with mocks.remote.GitHub():
+            self.assertEqual(str(remote.GitHub(self.remote).find('4@trunk')), '4@main')
+            self.assertEqual(str(remote.GitHub(self.remote).find('4@master')), '4@main')

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py (271747 => 271748)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py	2021-01-22 17:36:20 UTC (rev 271747)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py	2021-01-22 17:53:23 UTC (rev 271748)
@@ -222,7 +222,12 @@
         with mocks.local.Svn(self.path), OutputCapture():
             self.assertIsNone(local.Svn(self.path).commit(identifier='4@trunk', include_log=False).message)
 
+    def test_alternative_default_branch(self):
+        with mocks.local.Svn(self.path), OutputCapture():
+            self.assertEqual(str(local.Svn(self.path).find('4@main')), '4@trunk')
+            self.assertEqual(str(local.Svn(self.path).find('4@master')), '4@trunk')
 
+
 class TestRemoteSvn(unittest.TestCase):
     remote = 'https://svn.example.org/repository/webkit'
 
@@ -309,3 +314,8 @@
     def test_no_log(self):
         with mocks.remote.Svn():
             self.assertIsNone(remote.Svn(self.remote).commit(identifier='4@trunk', include_log=False).message)
+
+    def test_alternative_default_branch(self):
+        with mocks.remote.Svn():
+            self.assertEqual(str(remote.Svn(self.remote).find('4@main')), '4@trunk')
+            self.assertEqual(str(remote.Svn(self.remote).find('4@master')), '4@trunk')
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to