Title: [284926] trunk/Tools
Revision
284926
Author
jbed...@apple.com
Date
2021-10-27 10:11:30 -0700 (Wed, 27 Oct 2021)

Log Message

[webkitscmpy] Ensure empty line before canonicalization
https://bugs.webkit.org/show_bug.cgi?id=232103
<rdar://problem/84521382>

Reviewed by Stephanie Lewis.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py:
(main): Handle empty lines around identifier links, add empty line before identifier links.
* Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
(TestCanonicalize.test_formated_identifier):
(TestCanonicalize.test_existing_identifier):
(TestCanonicalize.test_git_svn):
(TestCanonicalize.test_git_svn_existing):
(TestCanonicalize.test_branch_commits):
(TestCanonicalize.test_number):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (284925 => 284926)


--- trunk/Tools/ChangeLog	2021-10-27 17:08:19 UTC (rev 284925)
+++ trunk/Tools/ChangeLog	2021-10-27 17:11:30 UTC (rev 284926)
@@ -1,3 +1,23 @@
+2021-10-27  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitscmpy] Ensure empty line before canonicalization
+        https://bugs.webkit.org/show_bug.cgi?id=232103
+        <rdar://problem/84521382>
+
+        Reviewed by Stephanie Lewis.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py:
+        (main): Handle empty lines around identifier links, add empty line before identifier links.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
+        (TestCanonicalize.test_formated_identifier):
+        (TestCanonicalize.test_existing_identifier):
+        (TestCanonicalize.test_git_svn):
+        (TestCanonicalize.test_git_svn_existing):
+        (TestCanonicalize.test_branch_commits):
+        (TestCanonicalize.test_number):
+
 2021-10-27  Alexey Proskuryakov  <a...@apple.com>
 
         webkitdirs.pm should use JSON::XS when available

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (284925 => 284926)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-10-27 17:08:19 UTC (rev 284925)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-10-27 17:11:30 UTC (rev 284926)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='2.2.16',
+    version='2.2.17',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (284925 => 284926)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-10-27 17:08:19 UTC (rev 284925)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-10-27 17:11:30 UTC (rev 284926)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(2, 2, 16)
+version = Version(2, 2, 17)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('jinja2', Version(2, 11, 3)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py (284925 => 284926)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py	2021-10-27 17:08:19 UTC (rev 284925)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py	2021-10-27 17:11:30 UTC (rev 284926)
@@ -56,11 +56,29 @@
     if identifier_index and repository.GIT_SVN_REVISION.match(lines[-1]):
         identifier_index -= 1
 
+    # We're trying to cover cases where there is a space between link and git-svn-id:
+    #     <commit message content>
+    #
+    #     Canonical link: ...
+    #     git-svn-id: ...
+    # OR
+    #     <commit message content>
+    #     Canonical link: ...
+    #
+    #     git-svn-id: ...
     if identifier_index and lines[identifier_index - 1].startswith(identifier_template.format('').split(':')[0]):
         lines[identifier_index - 1] = identifier_template.format(commit)
+        identifier_index = identifier_index - 2
+    elif identifier_index and lines[identifier_index - 2].startswith(identifier_template.format('').split(':')[0]):
+        del lines[identifier_index - 2]
+        lines.insert(identifier_index - 1, identifier_template.format(commit))
+        identifier_index = identifier_index - 2
     else:
         lines.insert(identifier_index, identifier_template.format(commit))
 
+    if lines[identifier_index]:
+        lines.insert(identifier_index, '')
+
     for line in lines:
         print(line)
 

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py (284925 => 284926)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py	2021-10-27 17:08:19 UTC (rev 284925)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py	2021-10-27 17:11:30 UTC (rev 284926)
@@ -74,7 +74,7 @@
 
             commit = local.Git(self.path).commit(branch=mock.default_branch)
             self.assertEqual(commit.author, contirbutors['zdober...@igalia.com'])
-            self.assertEqual(commit.message, 'New commit\nCanonical link: https://commits.webkit.org/6@main')
+            self.assertEqual(commit.message, 'New commit\n\nCanonical link: https://commits.webkit.org/6@main')
 
         self.assertEqual(
             captured.stdout.getvalue(),
@@ -94,7 +94,7 @@
                 author=Contributor('Jonathan Bedard', emails=['jbed...@apple.com']),
                 identifier=mock.commits[mock.default_branch][-1].identifier + 1,
                 timestamp=1601668000,
-                message='New commit\nIdentifier: {}@{}'.format(
+                message='New commit\n\nIdentifier: {}@{}'.format(
                     mock.commits[mock.default_branch][-1].identifier + 1,
                     mock.default_branch,
                 ),
@@ -108,7 +108,7 @@
 
             commit = local.Git(self.path).commit(branch=mock.default_branch)
             self.assertEqual(commit.author, contirbutors['jbed...@apple.com'])
-            self.assertEqual(commit.message, 'New commit\nIdentifier: 6@main')
+            self.assertEqual(commit.message, 'New commit\n\nIdentifier: 6@main')
 
         self.assertEqual(
             captured.stdout.getvalue(),
@@ -142,7 +142,7 @@
             self.assertEqual(commit.author, contirbutors['jbed...@apple.com'])
             self.assertEqual(
                 commit.message,
-                'New commit\n'
+                'New commit\n\n'
                 'Identifier: 6@main\n'
                 'git-svn-id: https://svn.example.org/repository/repository/trunk@9 268f45cc-cd09-0410-ab3c-d52691b4dbfc',
             )
@@ -158,6 +158,47 @@
             '1 commit successfully canonicalized!\n',
         )
 
+    def test_git_svn_existing(self):
+        with OutputCapture() as captured, mocks.local.Git(self.path, git_svn=True) as mock, mocks.local.Svn(), MockTime:
+            contirbutors = Contributor.Mapping()
+            contirbutors.create('Jonathan Bedard', 'jbed...@apple.com')
+
+            mock.commits[mock.default_branch].append(Commit(
+                hash='766609276fe201e7ce2c69994e113d979d2148ac',
+                branch=mock.default_branch,
+                author=Contributor('jbed...@apple.com', emails=['jbed...@apple.com']),
+                identifier=mock.commits[mock.default_branch][-1].identifier + 1,
+                timestamp=1601668000,
+                revision=9,
+                message='New commit\nIdentifier: 6@main\n\n',
+            ))
+
+            self.assertEqual(0, program.main(
+                args=('canonicalize', '-vv'),
+                path=self.path,
+                contributors=contirbutors,
+            ))
+
+            commit = local.Git(self.path).commit(branch=mock.default_branch)
+            self.assertEqual(commit.author, contirbutors['jbed...@apple.com'])
+            self.assertEqual(
+                commit.message,
+                'New commit\n\n'
+                'Identifier: 6@main\n'
+                'git-svn-id: https://svn.example.org/repository/repository/trunk@9 268f45cc-cd09-0410-ab3c-d52691b4dbfc',
+            )
+
+        self.assertEqual(
+            captured.stdout.getvalue(),
+            'Rewrite 766609276fe201e7ce2c69994e113d979d2148ac (1/1) (--- seconds passed, remaining --- predicted)\n'
+            'Overwriting 766609276fe201e7ce2c69994e113d979d2148ac\n'
+            '    GIT_AUTHOR_NAME=Jonathan Bedard\n'
+            '    GIT_AUTHOR_EMAIL=jbed...@apple.com\n'
+            '    GIT_COMMITTER_NAME=Jonathan Bedard\n'
+            '    GIT_COMMITTER_EMAIL=jbed...@apple.com\n'
+            '1 commit successfully canonicalized!\n',
+        )
+
     def test_branch_commits(self):
         with OutputCapture() as captured, mocks.local.Git(self.path) as mock, mocks.local.Svn(), MockTime:
             contirbutors = Contributor.Mapping()
@@ -191,11 +232,11 @@
 
             commit_a = local.Git(self.path).commit(branch='branch-a~1')
             self.assertEqual(commit_a.author, contirbutors['jbed...@apple.com'])
-            self.assertEqual(commit_a.message, 'New commit 1\nIdentifier: 2.3@branch-a')
+            self.assertEqual(commit_a.message, 'New commit 1\n\nIdentifier: 2.3@branch-a')
 
             commit_b = local.Git(self.path).commit(branch='branch-a')
             self.assertEqual(commit_b.author, contirbutors['jbed...@apple.com'])
-            self.assertEqual(commit_b.message, 'New commit 2\nIdentifier: 2.4@branch-a')
+            self.assertEqual(commit_b.message, 'New commit 2\n\nIdentifier: 2.4@branch-a')
 
         self.assertEqual(
             captured.stdout.getvalue(),
@@ -215,9 +256,9 @@
                 contributors=contirbutors,
             ))
 
-            self.assertEqual(local.Git(self.path).commit(identifier='5@main').message, 'Patch Series\nIdentifier: 5@main')
-            self.assertEqual(local.Git(self.path).commit(identifier='4@main').message, '8th commit\nIdentifier: 4@main')
-            self.assertEqual(local.Git(self.path).commit(identifier='3@main').message, '4th commit\nIdentifier: 3@main')
+            self.assertEqual(local.Git(self.path).commit(identifier='5@main').message, 'Patch Series\n\nIdentifier: 5@main')
+            self.assertEqual(local.Git(self.path).commit(identifier='4@main').message, '8th commit\n\nIdentifier: 4@main')
+            self.assertEqual(local.Git(self.path).commit(identifier='3@main').message, '4th commit\n\nIdentifier: 3@main')
 
         self.assertEqual(
             captured.stdout.getvalue(),
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to