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')