Index: pom.xml =================================================================== --- pom.xml (revision 1041282) +++ pom.xml (working copy) @@ -541,7 +541,7 @@ org.apache.maven.release maven-release-manager - 2.0 + 2.1 commons-logging @@ -1693,7 +1693,7 @@ 2.5.6 2.1.6 1.0-beta-2 - 1.2 + 1.4 1.3-SNAPSHOT 1.2.1 1.5.8 Index: continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java =================================================================== --- continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java (revision 1041282) +++ continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java (working copy) @@ -50,7 +50,8 @@ releaseDescriptor.getAdditionalArguments() ); } - public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects ) + public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, + List reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { ReleaseResult result = new ReleaseResult(); @@ -58,7 +59,7 @@ logInfo( result, "Executing preparation goals - since this is simulation mode it is running against the " + "original project, not the rewritten ones" ); - execute( releaseDescriptor, settings, reactorProjects ); + execute( releaseDescriptor, releaseEnvironment, reactorProjects ); return result; } Index: continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java =================================================================== --- continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java (revision 1041282) +++ continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java (working copy) @@ -19,16 +19,21 @@ * 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.ScmVersion; import org.apache.maven.scm.command.checkout.CheckOutScmResult; import org.apache.maven.scm.command.update.UpdateScmResult; +import org.apache.maven.scm.log.DefaultLog; import org.apache.maven.scm.manager.NoSuchScmProviderException; +import org.apache.maven.scm.manager.plexus.PlexusLogger; import org.apache.maven.scm.provider.ScmProvider; +import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.git.gitexe.command.branch.GitBranchCommand; +import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository; import org.apache.maven.scm.repository.ScmRepository; import org.apache.maven.scm.repository.ScmRepositoryException; -import org.apache.maven.settings.Settings; import org.apache.maven.shared.release.ReleaseExecutionException; import org.apache.maven.shared.release.ReleaseFailureException; import org.apache.maven.shared.release.ReleaseResult; @@ -58,7 +63,8 @@ private boolean copyUpdated = false; - public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects ) + public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, + List reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { ReleaseResult relResult = new ReleaseResult(); @@ -69,7 +75,8 @@ ScmProvider provider; try { - repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings ); + repository = + scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, releaseEnvironment.getSettings() ); provider = scmRepositoryConfigurator.getRepositoryProvider( repository ); } @@ -87,6 +94,7 @@ CheckOutScmResult checkOutScmResult = null; File workingDirectory = new File( releaseDescriptor.getWorkingDirectory() ); + ScmFileSet workingDirSet = new ScmFileSet( workingDirectory ); try { @@ -95,13 +103,27 @@ workingDirectory.mkdirs(); } + ScmVersion scmTag = null; + + ScmProviderRepository providerRepo = repository.getProviderRepository(); + + // FIXME: This should be handled by the maven-scm git provider + if ( providerRepo instanceof GitScmProviderRepository ) + { + String branchName = + GitBranchCommand.getCurrentBranch( new PlexusLogger(getLogger()), (GitScmProviderRepository) providerRepo, + workingDirSet ); + scmTag = new ScmBranch( branchName ); + } + if( workingDirectory.listFiles().length > 1 ) { - updateScmResult = provider.update( repository, new ScmFileSet( workingDirectory ), (ScmVersion) null ); + updateScmResult = provider.update( repository, workingDirSet, scmTag ); } else { checkOutScmResult = provider.checkOut( repository, new ScmFileSet( workingDirectory ) ); + checkOutScmResult = provider.checkOut( repository, workingDirSet, scmTag ); } } catch ( ScmException e ) @@ -134,10 +156,11 @@ return relResult; } - public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects ) + public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, + List reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { - return execute( releaseDescriptor, settings, reactorProjects ); + return execute( releaseDescriptor, releaseEnvironment, reactorProjects ); } public boolean isCopyUpdated() Index: continuum-release/src/main/java/org/apache/maven/continuum/release/phase/GenerateReactorProjectsPhase.java =================================================================== --- continuum-release/src/main/java/org/apache/maven/continuum/release/phase/GenerateReactorProjectsPhase.java (revision 1041282) +++ continuum-release/src/main/java/org/apache/maven/continuum/release/phase/GenerateReactorProjectsPhase.java (working copy) @@ -68,7 +68,8 @@ private PlexusContainer container; - public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects ) + public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, + List reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { ReleaseResult result = new ReleaseResult(); Index: continuum-release/pom.xml =================================================================== --- continuum-release/pom.xml (revision 1041282) +++ continuum-release/pom.xml (working copy) @@ -90,6 +90,12 @@ test + org.apache.maven.scm + maven-scm-provider-gitexe + 1.4 + compile + + org.codehaus.plexus plexus-component-api