[ 
https://issues.apache.org/jira/browse/SCM-886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16476540#comment-16476540
 ] 

ASF GitHub Bot commented on SCM-886:
------------------------------------

asfgit closed pull request #73: [SCM-886] introduce helper class to configure 
git commit user
URL: https://github.com/apache/maven-scm/pull/73
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
index 5781edc0e..99011dbd0 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
@@ -25,6 +25,7 @@
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -61,7 +62,12 @@ public void testCheckinNoBranch()
         FileUtils.copyDirectoryStructure( repo_orig, repo );
 
         ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:file:///" + repo.getAbsolutePath() );
+
         CheckOutScmResult checkOutScmResult = checkoutRepo( scmRepository );
+
+        // Add a default user to the config
+        GitScmTestUtils.setDefaultUser(workingDirectory);
+
         assertEquals( 0, checkOutScmResult.getCheckedOutFiles().size() );
 
         File f = new File( workingDirectory.getAbsolutePath() + File.separator 
+ "pom.xml" );
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
index 50093dbd5..a34796a55 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
@@ -98,6 +98,9 @@ public void testCheckinAfterRename() throws Exception {
         ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:file://" + repo.getAbsolutePath() );
         checkoutRepoInto(checkedOutRepo, scmRepository);
 
+        // Add a default user to the config
+        GitScmTestUtils.setDefaultUser(checkedOutRepo);
+
         // Creating foo/bar/wine.xml
         File fooDir = new File( checkedOutRepo.getAbsolutePath() + 
File.separator + "foo" );
         fooDir.mkdir();
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
index 4ba272bf6..c62458fd7 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
@@ -29,6 +29,7 @@
 import org.codehaus.plexus.util.cli.Commandline;
 
 import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
 
 /**
@@ -136,4 +137,38 @@ public static void deleteAllDirectories( File 
startDirectory, String pattern )
         }
     }
 
+    public static void setDefaultUser( File repositoryRootFile )
+    {
+        File gitConfigFile = new File( new File( repositoryRootFile, ".git" ), 
"config" );
+
+        FileWriter fw = null;
+        try
+        {
+            fw = new FileWriter( gitConfigFile , true );
+            fw.append( "[user]\n" );
+            fw.append( "\tname = John Doe\n" );
+            fw.append( "\temail = [email protected]\n" );
+            fw.flush();
+            fw.close();
+        }
+        catch ( IOException e )
+        {
+            System.err.println( "cannot setup a default user for tests purpose 
inside " + gitConfigFile );
+            e.printStackTrace();
+        }
+        finally
+        {
+            if ( fw != null )
+            {
+                try
+                {
+                    fw.close();
+                }
+                catch ( IOException ignore )
+                {
+                    // ignored
+                }
+            }
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
index 8b4dd748c..b654e4635 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.blame.BlameCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author Evgeny Mandrikov
  * @since 1.4
@@ -34,4 +38,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
index 598483f79..105a3db0c 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.branch.BranchCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  *
@@ -35,4 +39,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
index 18c32241c..0faa49681 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.changelog.ChangeLogCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  */
@@ -36,4 +40,16 @@ public void initRepo()
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
 
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
index 49e968ad1..bf6383b7e 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  *
@@ -36,4 +40,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
index 04ecc247a..ce8d93608 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.status.StatusCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  *
@@ -35,4 +39,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
index 7374e3617..d74105a9c 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  *
@@ -35,4 +39,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
index eae621075..ff277b5ca 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
@@ -19,9 +19,13 @@
  * under the License.
  */
 
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.update.UpdateCommandTckTest;
 
+import java.io.File;
+
 /**
  * @author <a href="mailto:[email protected]";>Mark Struberg</a>
  *
@@ -35,4 +39,17 @@ public void initRepo()
     {
         GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
     }
+
+    @Override
+    protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository 
repository ) throws Exception
+    {
+        try
+        {
+            return super.checkOut( workingDirectory, repository );
+        }
+        finally
+        {
+            GitScmTestUtils.setDefaultUser( workingDirectory );
+        }
+    }
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Tests with checkin rely on global git config
> --------------------------------------------
>
>                 Key: SCM-886
>                 URL: https://issues.apache.org/jira/browse/SCM-886
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-gitexe
>    Affects Versions: 1.9.5
>            Reporter: Matthieu Brouillard
>            Assignee: Michael Osipov
>            Priority: Major
>             Fix For: 1.9.6
>
>
> Inside maven-scm-provider-gitexe project, the two following tests 
> `GitCheckInCommandNoBranchTest.testCheckinNoBranch` and 
> `GitCheckInCommandTest.testCheckinAfterRename` expect a global user.name and 
> user.email to be set.
> On installations where .gitconfig contains the following:
> {{[user]}}
> {{useConfigOnly = true}}
> The tests will fail.
> It would be better after repository creation to configure a user name & email 
> at project level.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to