You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by GitBox <gi...@apache.org> on 2022/05/19 20:36:45 UTC

[GitHub] [maven-scm] michael-o commented on a diff in pull request #135: [SCM-977] Support for retrieving tags from the changelog

michael-o commented on code in PR #135:
URL: https://github.com/apache/maven-scm/pull/135#discussion_r877513964


##########
maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogConsumerTest.java:
##########
@@ -172,4 +173,72 @@ public void testConsumer2()
         assertTrue( cf.getRevision() != null && cf.getRevision().length() > 0 );
     }
 
+    public void testGitLogConsumer3()
+            throws Exception
+    {
+        GitChangeLogConsumer consumer = new GitChangeLogConsumer( new DefaultLog(), null );
+
+        File f = getTestFile( "/src/test/resources/git/changelog/gitlog3.gitlog" );
+
+        ConsumerUtils.consumeFile( f, consumer );
+
+        List<ChangeSet> modifications = consumer.getModifications();
+
+        assertEquals( 10, modifications.size() );
+
+        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss Z" );
+        sdf.setTimeZone( TimeZone.getTimeZone( "GMT" ) );

Review Comment:
   This is error-prone and will likely fail. Git, unfortunately, stores timestamp and offset. You never know in which offset the output will be because it depends on the author's/committer's system offset. Ideally, the pattern autorecognizes the offset.
   
   WDYT?



##########
maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogConsumerTest.java:
##########
@@ -172,4 +173,72 @@ public void testConsumer2()
         assertTrue( cf.getRevision() != null && cf.getRevision().length() > 0 );
     }
 
+    public void testGitLogConsumer3()
+            throws Exception
+    {
+        GitChangeLogConsumer consumer = new GitChangeLogConsumer( new DefaultLog(), null );
+
+        File f = getTestFile( "/src/test/resources/git/changelog/gitlog3.gitlog" );
+
+        ConsumerUtils.consumeFile( f, consumer );
+
+        List<ChangeSet> modifications = consumer.getModifications();
+
+        assertEquals( 10, modifications.size() );
+
+        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss Z" );
+        sdf.setTimeZone( TimeZone.getTimeZone( "GMT" ) );
+
+        ChangeSet first = modifications.get(0);
+        assertEquals( "Michael Osipov <mi...@apache.org>", first.getAuthor() );
+        assertEquals( "2022-01-08 20:02:12 +0000", sdf.format( first.getDate() ) );
+        assertEquals( "[maven-release-plugin] prepare for next development iteration", first.getComment() );
+        assertEquals( "4fc34cfa14f2e72506187b03a492ce55ed459d4c", first.getRevision() );
+        assertEquals( Collections.emptyList(), first.getTags() );
+        assertNotNull( first.getFiles() );
+        assertFalse( first.getFiles().isEmpty() );
+
+        ChangeSet second = modifications.get(1);
+        assertEquals( "Michael Osipov <mi...@apache.org>", second.getAuthor() );
+        assertEquals( "2022-01-08 20:02:01 +0000", sdf.format( second.getDate() ) );
+        assertEquals( "[maven-release-plugin] prepare release maven-scm-2.0.0-M1", second.getComment() );
+        assertEquals( "3a6d9817fe809c43eca588d7c0f4428254eae17c", second.getRevision() );
+        assertEquals( Collections.singletonList("maven-scm-2.0.0-M1"), second.getTags() );
+        assertNotNull( second.getFiles() );
+        assertFalse( second.getFiles().isEmpty() );
+    }
+
+    public void testTagAndBranchConsumer() {
+        String[] lines = {
+            "commit a6d03ee7bcec7bfd6b0fc890a277f004a1c54077 (HEAD -> main, tag: TestTag, origin/main, origin/HEAD)",
+            "Author: Niels Basjes <ni...@basjes.nl>",
+            "Date:   2022-02-06 16:19:01 +0100",
+            "",
+            "    This",
+            "    is",
+            "    a",
+            "    multiline",
+            "    comment",
+            "",
+            ":100644 100644 2019174 808473f M\tdocumentation/pom.xml",
+            ""
+        };
+        GitChangeLogConsumer consumer = new GitChangeLogConsumer( new DefaultLog(), null );
+
+        for (String line : lines) {
+            consumer.consumeLine(line);

Review Comment:
   spaces missing



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org