You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/06/21 11:26:02 UTC

[maven-scm] 01/02: [SCM-932] TC Create a fileset based from a subfolder instead of the root and try to commit it. Current code will not calculate the relative path correctly and not commit the file in the fileset.

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch SCM-932
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit 4e158fa6770df27216f1f533048c0bfafea3dd48
Author: Alex Harui <ah...@apache.org>
AuthorDate: Thu Apr 9 22:31:46 2020 -0700

    [SCM-932] TC Create a fileset based from a subfolder instead of the root and try to commit it. Current code will not calculate the relative path correctly and not commit the file in the fileset.
---
 .../JGitCheckInCommandCommitterAuthorTckTest.java  | 49 ++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
index b391e91..a68ca62 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
@@ -23,8 +23,10 @@ import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.List;
 
 import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
@@ -232,6 +234,21 @@ public class JGitCheckInCommandCommitterAuthorTckTest
         assertNotNull( head.getCommitterIdent().getEmailAddress() );
         assertNotNull( head.getAuthorIdent().getEmailAddress() );
         JGitUtils.closeRepo( git );
+
+        // unset all configs
+        git = Git.open( getWorkingCopy() );
+
+        // make a change with no user on the commandline
+        createAndCommitFileFromFolder( fooJava, null );
+
+        // check new commit is has a committer/author with email set
+        head = getHeadCommit( git.getRepository() );
+        assertNotNull( head.getCommitterIdent().getName() );
+        assertNotNull( head.getAuthorIdent().getName() );
+        assertNotNull( head.getCommitterIdent().getEmailAddress() );
+        assertNotNull( head.getAuthorIdent().getEmailAddress() );
+        JGitUtils.closeRepo( git );
+
     }
 
     /**
@@ -264,6 +281,38 @@ public class JGitCheckInCommandCommitterAuthorTckTest
         assertResultIsSuccess( result );
     }
 
+    /**
+     * The fileset is based in a subfolder instead of the repo root.
+     * Actual scenario is more like:
+     * repo-root/pom.xml
+     * repo-root/unparented-submodule/pom.xml
+     *
+     * cd repo-root/unparented-submodule
+     * mvn release:prepare 
+     */
+    private void createAndCommitFileFromFolder( File file, String username )
+        throws Exception, ScmException, IOException
+    {
+        createFooJava( file );
+
+        ScmRepository scmRepository = getScmRepository();
+        scmRepository.getProviderRepository().setUser( username );
+        AddScmResult addResult = getScmManager().add( scmRepository, new ScmFileSet( new File(getWorkingCopy(), "src"),  "main/java/Foo.java" ) );
+
+        assertResultIsSuccess( addResult );
+
+        CheckInScmResult result =
+            getScmManager().checkIn( scmRepository, new ScmFileSet( new File(getWorkingCopy(), "src"),  "main/java/Foo.java" ), "Commit message" );
+
+        assertResultIsSuccess( result );
+
+        List<ScmFile> files = result.getCheckedInFiles();
+
+        assertNotNull( files );
+
+        assertEquals( 1, files.size() );
+    }
+
     private RevCommit getHeadCommit( Repository repository )
         throws Exception
     {