Updated Branches: refs/heads/master 8ad9801df -> f7c5c4c75
[SCM-487] support --parents option for svn copy (tag commands) (svn 1.5 required) -- Reapplied Olivier's patch Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/4f4897ab Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/4f4897ab Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/4f4897ab Branch: refs/heads/master Commit: 4f4897ab902a1c6b4544dde6181398c83666535b Parents: 22d21c4 Author: Michael Osipov <micha...@apache.org> Authored: Sat Nov 23 14:11:49 2013 +0100 Committer: Michael Osipov <micha...@apache.org> Committed: Sat Nov 23 14:11:49 2013 +0100 ---------------------------------------------------------------------- .../svn/svnexe/command/tag/SvnTagCommand.java | 24 +++++++++----------- .../command/tag/SvnExeTagCommandTckTest.java | 16 ++++++------- 2 files changed, 19 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-scm/blob/4f4897ab/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java ---------------------------------------------------------------------- diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java index f95ed12..73a319c 100644 --- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java +++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java @@ -56,7 +56,7 @@ public class SvnTagCommand extends AbstractTagCommand implements SvnCommand { - + public ScmResult executeTagCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag, String message ) throws ScmException { @@ -65,7 +65,7 @@ public class SvnTagCommand scmTagParameters.setRemoteTagging( false ); return executeTagCommand( repo, fileSet, tag, scmTagParameters ); } - + /** {@inheritDoc} */ public ScmResult executeTagCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag, ScmTagParameters scmTagParameters ) @@ -77,7 +77,6 @@ public class SvnTagCommand getLogger().debug( "SvnTagCommand :: scmTagParameters is null create an empty one" ); scmTagParameters = new ScmTagParameters(); scmTagParameters.setRemoteTagging( false ); - } else { @@ -109,9 +108,9 @@ public class SvnTagCommand return new TagScmResult( null, "Error while making a temporary file for the commit message: " + ex.getMessage(), null, false ); } - + Commandline cl = createCommandLine( repository, fileSet.getBasedir(), tag, messageFile, scmTagParameters ); - + CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer(); CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer(); @@ -223,7 +222,7 @@ public class SvnTagCommand return cl; } - + public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, String tag, File messageFile, ScmTagParameters scmTagParameters ) { @@ -235,17 +234,16 @@ public class SvnTagCommand cl.createArg().setValue( messageFile.getAbsolutePath() ); - // SCM-487 olamy : this need a svn 1.5 cli - //cl.createArg().setValue( "--parents" ); - + cl.createArg().setValue( "--parents" ); + if ( scmTagParameters != null && scmTagParameters.getScmRevision() != null ) { cl.createArg().setValue( "--revision" ); - + cl.createArg().setValue( scmTagParameters.getScmRevision() ); - + } - + if ( scmTagParameters != null && scmTagParameters.isRemoteTagging() ) { @@ -261,5 +259,5 @@ public class SvnTagCommand cl.createArg().setValue( SvnCommandUtils.fixUrl( tagUrl, repository.getUser() ) ); return cl; - } + } } http://git-wip-us.apache.org/repos/asf/maven-scm/blob/4f4897ab/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java ---------------------------------------------------------------------- diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java index 6056a9c..d438039 100644 --- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java +++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java @@ -44,9 +44,9 @@ public class SvnExeTagCommandTckTest testCommandLine( "scm:svn:svn+ssh://foo.com/svn/trunk", "svntag", messageFile, "user", "svn --username user --no-auth-cache --non-interactive copy --file " + messageFile.getAbsolutePath() + - " . svn+ssh://u...@foo.com/svn/tags/svntag", null ); + " --parents . svn+ssh://u...@foo.com/svn/tags/svntag", null ); } - + public void testTagRemoteTagHttps() throws Exception { @@ -57,9 +57,9 @@ public class SvnExeTagCommandTckTest scmTagParameters.setRemoteTagging( true ); testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svntag", messageFile, "user", "svn --username user --no-auth-cache --non-interactive copy --file " + messageFile.getAbsolutePath() - + " https://foo.com/svn/trunk https://foo.com/svn/tags/svntag", scmTagParameters ); - } - + + " --parents https://foo.com/svn/trunk https://foo.com/svn/tags/svntag", scmTagParameters ); + } + public void testTagRemoteTagHttpsWithRevision() throws Exception { @@ -71,9 +71,9 @@ public class SvnExeTagCommandTckTest scmTagParameters.setScmRevision( "12" ); testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svntag", messageFile, "user", "svn --username user --no-auth-cache --non-interactive copy --file " + messageFile.getAbsolutePath() - + " --revision 12 https://foo.com/svn/trunk https://foo.com/svn/tags/svntag", + + " --parents --revision 12 https://foo.com/svn/trunk https://foo.com/svn/tags/svntag", scmTagParameters ); - } + } private void testCommandLine( String scmUrl, String tag, File messageFile, String user, String commandLine, ScmTagParameters scmTagParameters ) @@ -90,7 +90,7 @@ public class SvnExeTagCommandTckTest Commandline cl = null; cl = SvnTagCommand.createCommandLine( svnRepository, workingDirectory, tag, messageFile, scmTagParameters ); - + assertCommandLine( commandLine, workingDirectory, cl ); } }