diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
index cb46cc9cf..46fa41384 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
@@ -39,6 +39,7 @@
import java.io.File;
import java.util.List;
+import org.apache.maven.shared.release.util.ReleaseUtil;
/**
* Branch the SCM repository.
@@ -64,12 +65,15 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
validateConfiguration( releaseDescriptor );
logInfo( relResult, "Branching release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." );
+
+ ReleaseDescriptor basedirAlignedReleaseDescriptor =
+ ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor, reactorProjects );
ScmRepository repository;
ScmProvider provider;
try
{
- repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, releaseEnvironment.getSettings() );
+ repository = scmRepositoryConfigurator.getConfiguredRepository( basedirAlignedReleaseDescriptor.getScmSourceUrl(), releaseDescriptor, releaseEnvironment.getSettings() );
repository.getProviderRepository().setPushChanges( releaseDescriptor.isPushChanges() );
@@ -88,7 +92,7 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
BranchScmResult result;
try
{
- ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) );
+ ScmFileSet fileSet = new ScmFileSet( new File( basedirAlignedReleaseDescriptor.getWorkingDirectory() ) );
String branchName = releaseDescriptor.getScmReleaseLabel();
ScmBranchParameters scmBranchParameters = new ScmBranchParameters();
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
index febe68285..55bdda87b 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
@@ -20,7 +20,11 @@
*/
import java.util.Arrays;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.apache.maven.project.MavenProject;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.shared.release.ReleaseExecutionException;
@@ -28,6 +32,8 @@
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.shared.release.config.ReleaseUtils;
+import org.codehaus.plexus.util.FileUtils;
+
/**
* Branch a project in SCM, using the same steps as the release:prepare goal, creating a branch instead of a tag.
* For more info see http://maven.apache.org/plugins/maven-release-plugin/examples/branch.html.
@@ -231,7 +237,7 @@ public void execute()
try
{
- releaseManager.branch( config, getReleaseEnvironment(), reactorProjects, dryRun );
+ releaseManager.branch( config, getReleaseEnvironment(), filterReactorProjects(reactorProjects), dryRun );
}
catch ( ReleaseExecutionException e )
{
@@ -242,4 +248,19 @@ public void execute()
throw new MojoFailureException( e.getMessage(), e );
}
}
+
+ public List filterReactorProjects(List reactorProjects) {
+ String currentDir = FileUtils.normalize( basedir.getAbsolutePath().replace( '\\', '/' ) );
+ List filteredList = new ArrayList();
+ for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
+ {
+ MavenProject p = (MavenProject) i.next();
+ String dir = FileUtils.normalize( p.getBasedir().getAbsolutePath().replace( '\\', '/' ) );
+ if(dir.startsWith(currentDir))
+ {
+ filteredList.add(p);
+ }
+ }
+ return filteredList;
+ }
}