You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by im...@apache.org on 2014/07/18 18:40:37 UTC

[2/7] git commit: simplify and add more tests

simplify and add more tests


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/d114bfbb
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/d114bfbb
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/d114bfbb

Branch: refs/heads/master
Commit: d114bfbb052b7eef8d73d2ade38f94159704abf0
Parents: 6a4ccf5
Author: imod <do...@fortysix.ch>
Authored: Fri Jul 18 06:15:20 2014 +0200
Committer: imod <do...@fortysix.ch>
Committed: Fri Jul 18 06:15:20 2014 +0200

----------------------------------------------------------------------
 .../command/checkin/JGitCheckInCommand.java     | 34 +++---------
 ...GitCheckInCommandCommitterAuthorTckTest.java | 58 ++++++++++++--------
 2 files changed, 44 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/d114bfbb/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
index 7e91cf0..d6e55d4 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
@@ -47,7 +47,6 @@ import java.util.Set;
 /**
  * This provider uses the following strategy to discover the committer and author name/mail for a commit:
  * <ol>
- *   <li>"maven-scm" section in .gitconfig</li>
  *   <li>"user" section in .gitconfig</li>
  *   <li>"username" passed to maven execution</li>
  *   <li>default git config (system user and hostname for email)</li>
@@ -55,10 +54,6 @@ import java.util.Set;
  * 
  * the "maven-scm" config can be configured like this:
  * 
- * the user to be used:<br>
- * <code>git config --global maven-scm.name "dude"</code>
- * <br>
- * <code>git config --global maven-scm.email "dude@mydomain.com"</code>
  * <br>
  * the default email domain to be used (will be used to create an email from the username passed to maven):<br>
  * <code>git config --global maven-scm.maildomain "mycomp.com"</code>
@@ -75,10 +70,6 @@ public class JGitCheckInCommand
 	
 	protected static final String GIT_MAVEN_SECTION = "maven-scm";
 	
-	protected static final String GIT_USERNAME = "name";
-	
-	protected static final String GIT_EMAIL = "email";
-	
 	protected static final String GIT_MAILDOMAIN = "maildomain";
 	
     /**
@@ -180,12 +171,10 @@ public class JGitCheckInCommand
     
     private UserInfo getCommitter( ScmProviderRepository repo, Git git ) 
     {
-    	// mvn scm git config
-    	String committerName = git.getRepository().getConfig().getString( GIT_MAVEN_SECTION, null, GIT_USERNAME );
-    	
     	// git config
     	UserConfig user = git.getRepository().getConfig().get(UserConfig.KEY);
-    	if ( StringUtils.isBlank( committerName ) && !user.isCommitterNameImplicit() )
+    	String committerName = null;
+    	if ( !user.isCommitterNameImplicit() )
     	{
     		committerName = user.getCommitterName();
     	}
@@ -201,13 +190,10 @@ public class JGitCheckInCommand
     	{
     		committerName = user.getCommitterName();
     	}
-    	
 
-    	// maven scm git config
-    	String committerMail = git.getRepository().getConfig().getString( GIT_MAVEN_SECTION, null, GIT_EMAIL );
-    	
     	// git config
-    	if ( StringUtils.isBlank( committerMail ) && !user.isCommitterEmailImplicit() )
+    	String committerMail = null;
+    	if (  !user.isCommitterEmailImplicit() )
     	{
     		committerMail = user.getCommitterEmail();
     	}
@@ -226,12 +212,10 @@ public class JGitCheckInCommand
     
     private UserInfo getAuthor( ScmProviderRepository repo, Git git ) 
     {
-       	// mvn scm config
-    	String authorName = git.getRepository().getConfig().getString( GIT_MAVEN_SECTION, null, GIT_USERNAME );
-    	
     	// git config
     	UserConfig user = git.getRepository().getConfig().get(UserConfig.KEY);
-    	if ( StringUtils.isBlank( authorName ) && !user.isAuthorNameImplicit() )
+    	String authorName = null;
+    	if ( !user.isAuthorNameImplicit() )
     	{
     		authorName = user.getAuthorName();
     	}
@@ -248,11 +232,9 @@ public class JGitCheckInCommand
     		authorName = user.getAuthorName();
     	}
     	
-    	// maven scm git config
-    	String authorMail = git.getRepository().getConfig().getString( GIT_MAVEN_SECTION, null, GIT_EMAIL );
-    	
     	// git config
-    	if ( StringUtils.isBlank( authorMail ) && !user.isAuthorEmailImplicit() )
+    	String authorMail = null;
+    	if ( !user.isAuthorEmailImplicit() )
     	{
     		authorMail = user.getAuthorEmail();
     	}

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/d114bfbb/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
----------------------------------------------------------------------
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 260be1c..37e1842 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
@@ -117,27 +117,6 @@ public class JGitCheckInCommandCommitterAuthorTckTest
     	assertEquals( "dbartholdi", head.getCommitterIdent().getName() );
     	assertFalse( "no mail domain is configured, git system default should be used", head.getCommitterIdent().getEmailAddress().contains( "dbartholdi" ) );
     	JGitUtils.closeRepo( git );		
-
-    	
-    	
-    	// set a user in the maven section of the git config 
-        git = Git.open( getWorkingCopy() );
-        config = git.getRepository().getConfig();
-        unsetConfig(config);
-		config.setString( JGitCheckInCommand.GIT_MAVEN_SECTION, null, JGitCheckInCommand.GIT_USERNAME, "Dude" );
-		config.setString( JGitCheckInCommand.GIT_MAVEN_SECTION, null, JGitCheckInCommand.GIT_EMAIL, "dude@mydomain.com" );
-		config.save();
-		
-		// make a change
-		createAndCommitFile( fooJava, null );
-				
-		// check new commit is done with new maven user in config
-    	head = getHeadCommit( git.getRepository() );
-    	assertEquals( "Dude", head.getCommitterIdent().getName() );
-    	assertEquals( "Dude", head.getAuthorIdent().getName() );
-    	assertEquals( "dude@mydomain.com", head.getCommitterIdent().getEmailAddress() );
-    	assertEquals( "dude@mydomain.com", head.getAuthorIdent().getEmailAddress() );
-    	JGitUtils.closeRepo( git );		
     	
     	
     	// unset a user and maven user but set default mail domain 
@@ -158,13 +137,27 @@ public class JGitCheckInCommandCommitterAuthorTckTest
     	assertEquals( "dude@comp.com", head.getAuthorIdent().getEmailAddress() );    	
     	JGitUtils.closeRepo( git );		
 
+    	// unset a user and maven user but set default mail domain 
+        git = Git.open( getWorkingCopy() );
+        config = git.getRepository().getConfig();
+        unsetConfig(config);
+		config.setString( JGitCheckInCommand.GIT_MAVEN_SECTION, null, JGitCheckInCommand.GIT_MAILDOMAIN, "anycomp.com" );
+		config.save();
+
+		// make a change with no username given
+		createAndCommitFile( fooJava, null );
+				
+		// check new commit does not contain the configured email domain
+    	head = getHeadCommit( git.getRepository() );
+    	assertFalse( head.getCommitterIdent().getEmailAddress().contains("anycomp.com") );
+    	assertFalse( head.getAuthorIdent().getEmailAddress().contains("anycomp.com") );
+    	JGitUtils.closeRepo( git );	
     	
     	// unset a user and full maven section 
         git = Git.open( getWorkingCopy() );
         config = git.getRepository().getConfig();
         unsetConfig(config);
 		config.save();
-		config.getString("user", null, "name");
 
 		// make a change with an user on the commandline
 		createAndCommitFile( fooJava, "dundy" );
@@ -176,8 +169,29 @@ public class JGitCheckInCommandCommitterAuthorTckTest
     	assertTrue( "the maven user (from parameter) name must be in the committer mail when nothing else is configured", head.getCommitterIdent().getEmailAddress().contains( "dundy" ) );
     	assertTrue( "the user name (from parameter) must be in the author mail when nothing else is configured", head.getAuthorIdent().getEmailAddress().contains( "dundy" ) );
     	JGitUtils.closeRepo( git );
+    	
+    	
+    	// unset all configs 
+        git = Git.open( getWorkingCopy() );
+        config = git.getRepository().getConfig();
+        unsetConfig(config);
+		config.save();
+
+		// make a change with no user on the commandline
+		createAndCommitFile( 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 );
     }
 
+    /**
+     * make sure the local .gitconfig is in a clean state 
+     */
 	private void unsetConfig(StoredConfig config) {
 		config.unsetSection( "user", null );
 		config.unset( "user", null, "name" );