You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2012/02/06 20:56:44 UTC
svn commit: r1241134 -
/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
Author: struberg
Date: Mon Feb 6 19:56:44 2012
New Revision: 1241134
URL: http://svn.apache.org/viewvc?rev=1241134&view=rev
Log:
SCM-584 immediately checkout a given branch with --branch
thanks to Sebastian Annies for providing this fix!
Applied with slight fixes and improvements.
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java?rev=1241134&r1=1241133&r2=1241134&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java Mon Feb 6 19:56:44 2012
@@ -19,6 +19,7 @@ package org.apache.maven.scm.provider.gi
* under the License.
*/
+import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
@@ -84,7 +85,7 @@ public class GitCheckOutCommand
}
// no git repo seems to exist, let's clone the original repo
- Commandline clClone = createCloneCommand( repository, fileSet.getBasedir() );
+ Commandline clClone = createCloneCommand( repository, fileSet.getBasedir(), version );
exitCode = GitCommandLineUtils.execute( clClone, stdout, stderr, getLogger() );
if ( exitCode != 0 )
@@ -103,7 +104,7 @@ public class GitCheckOutCommand
&& result.getBranches().size() > 0 )
{
// git repo exists, so we must git-pull the changes
- Commandline clPull = createPullCommand( repository, fileSet.getBasedir(), version );
+ Commandline clPull = createPullCommand(repository, fileSet.getBasedir(), version);
exitCode = GitCommandLineUtils.execute( clPull, stdout, stderr, getLogger() );
if ( exitCode != 0 )
@@ -161,10 +162,18 @@ public class GitCheckOutCommand
/**
* create a git-clone repository command
*/
- private Commandline createCloneCommand( GitScmProviderRepository repository, File workingDirectory )
+ private Commandline createCloneCommand( GitScmProviderRepository repository, File workingDirectory,
+ ScmVersion version )
{
Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory.getParentFile(), "clone" );
+ if ( version != null && (version instanceof ScmBranch) ) {
+
+ cl.createArg().setValue( "--branch" );
+
+ cl.createArg().setValue( version.getName() );
+ }
+
cl.createArg().setValue( repository.getFetchUrl() );
cl.createArg().setFile( workingDirectory );