maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From micha...@apache.org
Subject [maven-scm] 01/01: [SCM-859] Subversion commands don't work if path or URL contain '@'
Date Sun, 09 Sep 2018 18:26:29 GMT
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch SCM-859
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit 6ea6f4d7483480bcafe39ec73783dcde76159139
Author: Michael Osipov <michaelo@apache.org>
AuthorDate: Sun Sep 9 12:09:16 2018 +0200

    [SCM-859] Subversion commands don't work if path or URL contain '@'
    
    There are some oddities where @ escaping is necessary or whether the
    path can have a peg revision or not. A discussion on this has been
    raised: http://mail-archives.apache.org/mod_mbox/subversion-users/201809.mbox/%3C5f96ccf9-fe6a-8291-4c5a-c90f8e1c70bc%40apache.org%3E
    
    We might need to revise the code after some time when the issues have
    been resolved by the Subversion team.
    
    This closes #58
---
 .../svnexe/command/branch/SvnBranchCommand.java    | 12 ++++---
 .../command/changelog/SvnChangeLogCommand.java     |  8 +++--
 .../command/checkout/SvnCheckOutCommand.java       |  2 +-
 .../svnexe/command/export/SvnExeExportCommand.java |  6 ++--
 .../svn/svnexe/command/info/SvnInfoCommand.java    |  2 +-
 .../svn/svnexe/command/list/SvnListCommand.java    |  2 +-
 .../svn/svnexe/command/mkdir/SvnMkdirCommand.java  |  2 +-
 .../command/remoteinfo/SvnRemoteInfoCommand.java   |  6 ++--
 .../svn/svnexe/command/tag/SvnTagCommand.java      |  9 +++--
 .../svnexe/command/update/SvnUpdateCommand.java    | 15 ++++----
 .../command/branch/SvnExeBranchCommandTckTest.java | 12 +++----
 .../command/changelog/SvnChangeLogCommandTest.java | 26 +++++++-------
 .../command/checkout/SvnCheckOutCommandTest.java   |  8 ++---
 .../command/export/SvnExportCommandTest.java       |  6 ++--
 .../svnexe/command/list/SvnListCommandTest.java    |  2 +-
 .../svnexe/command/mkdir/SvnMkdirCommandTest.java  |  4 +--
 .../command/tag/SvnExeTagCommandTckTest.java       | 10 +++---
 .../command/update/SvnUpdateCommandTest.java       | 40 +++++++++++-----------
 18 files changed, 90 insertions(+), 82 deletions(-)

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/branch/SvnBranchCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnBranchCommand.java
index b5c78a4..46e8f80 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnBranchCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnBranchCommand.java
@@ -56,7 +56,7 @@ public class SvnBranchCommand
     extends AbstractBranchCommand
     implements SvnCommand
 {
-    
+
     public ScmResult executeBranchCommand( ScmProviderRepository repo, ScmFileSet fileSet,
String branch,
                                            ScmBranchParameters scmBranchParameters )
     throws ScmException
@@ -150,7 +150,7 @@ public class SvnBranchCommand
 
         return new BranchScmResult( cl.toString(), fileList );
     }
-    
+
     /** {@inheritDoc} */
     public ScmResult executeBranchCommand( ScmProviderRepository repo, ScmFileSet fileSet,
String branch,
                                            String message )
@@ -172,7 +172,7 @@ public class SvnBranchCommand
         scmBranchParameters.setPinExternals( false );
         return createCommandLine( repository, workingDirectory, branch, messageFile, scmBranchParameters
);
     }
-    
+
     public static Commandline createCommandLine( SvnScmProviderRepository repository, File
workingDirectory,
                                                  String branch, File messageFile,
                                                  ScmBranchParameters scmBranchParameters
)
@@ -203,7 +203,8 @@ public class SvnBranchCommand
                 cl.createArg().setValue( "--revision" );
                 cl.createArg().setValue( scmBranchParameters.getScmRevision() );
             }
-            cl.createArg().setValue( SvnCommandUtils.fixUrl( repository.getUrl(), repository.getUser()
) );
+            String url = SvnCommandUtils.fixUrl( repository.getUrl(), repository.getUser()
);
+            cl.createArg().setValue( url + "@" );
         }
         else
         {
@@ -211,7 +212,8 @@ public class SvnBranchCommand
         }
         // Note: this currently assumes you have the branch base checked out too
         String branchUrl = SvnTagBranchUtils.resolveBranchUrl( repository, new ScmBranch(
branch ) );
-        cl.createArg().setValue( SvnCommandUtils.fixUrl( branchUrl, repository.getUser()
) );
+        branchUrl = SvnCommandUtils.fixUrl( branchUrl, repository.getUser() );
+        cl.createArg().setValue( branchUrl + "@" );
 
         return cl;
     }
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/changelog/SvnChangeLogCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
index d619a34..65b90df 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
@@ -209,17 +209,19 @@ public class SvnChangeLogCommand
             // the changelog of that branch, but limit it to paths that also occur in this
repository.
             if ( branch instanceof ScmTag )
             {
-                cl.createArg().setValue( SvnTagBranchUtils.resolveTagUrl( repository, (ScmTag)
branch ) );
+                String tagUrl = SvnTagBranchUtils.resolveTagUrl( repository, (ScmTag) branch
);
+                cl.createArg().setValue( tagUrl + "@" );
             }
             else
             {
-                cl.createArg().setValue( SvnTagBranchUtils.resolveBranchUrl( repository,
branch ) );
+                String branchUrl = SvnTagBranchUtils.resolveBranchUrl( repository, branch
);
+                cl.createArg().setValue( branchUrl + "@" );
             }
         }
 
         if ( endVersion == null || !StringUtils.equals( "BASE", endVersion.getName() ) )
         {
-            cl.createArg().setValue( repository.getUrl() );
+            cl.createArg().setValue( repository.getUrl() + "@" );
         }
 
         return cl;
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/checkout/SvnCheckOutCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommand.java
index 0379047..8adb689 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommand.java
@@ -165,7 +165,7 @@ public class SvnCheckOutCommand
             }
         }
 
-        cl.createArg().setValue( url );
+        cl.createArg().setValue( url + "@" );
 
         cl.createArg().setValue( workingDirectory.getAbsolutePath() );
 
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/export/SvnExeExportCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
index cfee2b1..78aecb9 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
@@ -142,15 +142,15 @@ public class SvnExeExportCommand
                 cl.createArg().setValue( version.getName() );
             }
         }
-        
+
         //support exporting to an existing directory
         cl.createArg().setValue( "--force" );
 
-        cl.createArg().setValue( url );
+        cl.createArg().setValue( url + "@" );
 
         if ( StringUtils.isNotEmpty( outputSirectory ) )
         {
-            cl.createArg().setValue( outputSirectory );
+            cl.createArg().setValue( outputSirectory + "@" );
         }
 
         return cl;
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/info/SvnInfoCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/info/SvnInfoCommand.java
index 758c188..438c7c7 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/info/SvnInfoCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/info/SvnInfoCommand.java
@@ -126,7 +126,7 @@ public class SvnInfoCommand
             }
             else
             {
-                cl.createArg().setValue( repository.getUrl() + "/" + file.getPath().replace(
'\\', '/' ) );
+                cl.createArg().setValue( repository.getUrl() + "/" + file.getPath().replace(
'\\', '/' ) + "@" );
             }
         }
 
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/list/SvnListCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java
index e9c47f9..553b080 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java
@@ -118,7 +118,7 @@ public class SvnListCommand
         {
             File file = it.next();
 
-            cl.createArg().setValue( repository.getUrl() + "/" + file.getPath().replace(
'\\', '/' ) );
+            cl.createArg().setValue( repository.getUrl() + "/" + file.getPath().replace(
'\\', '/' ) + "@" );
         }
 
         return cl;
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/mkdir/SvnMkdirCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommand.java
index 0f10d26..bcc96aa 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommand.java
@@ -145,7 +145,7 @@ public class SvnMkdirCommand
 
         if ( !createInLocal )
         {
-            cl.createArg().setValue( repository.getUrl() + "/" + dirPath );
+            cl.createArg().setValue( repository.getUrl() + "/" + dirPath + "@" );
 
             if ( messageFile != null )
             {
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/remoteinfo/SvnRemoteInfoCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommand.java
index df364a3..75c4724 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommand.java
@@ -64,7 +64,7 @@ public class SvnRemoteInfoCommand
 
         cl.createArg().setValue( "ls" );
 
-        cl.createArg().setValue( baseUrl + "/tags" );
+        cl.createArg().setValue( baseUrl + "/tags" + "@" );
 
         CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
 
@@ -95,7 +95,7 @@ public class SvnRemoteInfoCommand
 
         cl.createArg().setValue( "ls" );
 
-        cl.createArg().setValue( baseUrl + "/tags" );
+        cl.createArg().setValue( baseUrl + "/tags" + "@" );
 
         stderr = new CommandLineUtils.StringStreamConsumer();
 
@@ -131,7 +131,7 @@ public class SvnRemoteInfoCommand
 
         cl.createArg().setValue( "ls" );
 
-        cl.createArg().setValue( url );
+        cl.createArg().setValue( url + "@" );
 
         CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
 
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 0e96e97..108a03e 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
@@ -223,7 +223,8 @@ public class SvnTagCommand
 
         // Note: this currently assumes you have the tag base checked out too
         String tagUrl = SvnTagBranchUtils.resolveTagUrl( repository, new ScmTag( tag ) );
-        cl.createArg().setValue( SvnCommandUtils.fixUrl( tagUrl, repository.getUser() ) );
+        tagUrl = SvnCommandUtils.fixUrl( tagUrl, repository.getUser() );
+        cl.createArg().setValue( tagUrl + "@" );
 
         return cl;
     }
@@ -261,7 +262,8 @@ public class SvnTagCommand
 
         if ( scmTagParameters != null && scmTagParameters.isRemoteTagging() )
         {
-            cl.createArg().setValue( SvnCommandUtils.fixUrl( repository.getUrl(), repository.getUser()
) );
+            String url = SvnCommandUtils.fixUrl( repository.getUrl(), repository.getUser()
);
+            cl.createArg().setValue( url + "@" );
         }
         else
         {
@@ -270,7 +272,8 @@ public class SvnTagCommand
 
         // Note: this currently assumes you have the tag base checked out too
         String tagUrl = SvnTagBranchUtils.resolveTagUrl( repository, new ScmTag( tag ) );
-        cl.createArg().setValue( SvnCommandUtils.fixUrl( tagUrl, repository.getUser() ) );
+        tagUrl = SvnCommandUtils.fixUrl( tagUrl, repository.getUser() );
+        cl.createArg().setValue( tagUrl + "@" );
 
         return cl;
     }
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/update/SvnUpdateCommand.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommand.java
index 5edcbbc..b1b7fde 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommand.java
@@ -90,14 +90,14 @@ public class SvnUpdateCommand
 
         UpdateScmResultWithRevision result = new UpdateScmResultWithRevision( cl.toString(),
consumer.getUpdatedFiles(),
                                                 String.valueOf( consumer.getRevision() )
);
-        
+
         result.setChanges( consumer.getChangeSets() );
 
         if ( getLogger().isDebugEnabled() )
         {
             getLogger().debug( "changeSets " + consumer.getChangeSets() );
         }
-        
+
         return result;
     }
 
@@ -136,7 +136,7 @@ public class SvnUpdateCommand
                 cl.createArg().setValue( version.getName() );
             }
 
-            cl.createArg().setValue( workingDir );
+            cl.createArg().setValue( workingDir + "@" );
         }
         else
         {
@@ -147,14 +147,15 @@ public class SvnUpdateCommand
                 cl.createArg().setValue( "switch" );
                 if ( version instanceof ScmTag )
                 {
-                    cl.createArg().setValue( SvnTagBranchUtils.resolveTagUrl( repository,
(ScmTag) version ) );
+                    String tagUrl = SvnTagBranchUtils.resolveTagUrl( repository, (ScmTag)
version );
+                    cl.createArg().setValue( tagUrl + "@" );
                 }
                 else
                 {
-                    cl.createArg().setValue(
-                        SvnTagBranchUtils.resolveBranchUrl( repository, (ScmBranch) version
) );
+                    String branchUrl = SvnTagBranchUtils.resolveBranchUrl( repository, (ScmBranch)
version );
+                    cl.createArg().setValue( branchUrl + "@" );
                 }
-                cl.createArg().setValue( workingDir );
+                cl.createArg().setValue( workingDir + "@" );
             }
         }
 
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/branch/SvnExeBranchCommandTckTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
index 5b73ef3..3547f22 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
@@ -50,7 +50,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svnbranch", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 --revision 2 https://foo.com/svn/trunk
https://foo.com/svn/branches/svnbranch",
+                             + " --encoding UTF-8 --revision 2 https://foo.com/svn/trunk@
https://foo.com/svn/branches/svnbranch@",
                          scmBranchParameters );
     }
 
@@ -67,7 +67,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svnbranch", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 --pin-externals --revision 2 https://foo.com/svn/trunk
https://foo.com/svn/branches/svnbranch",
+                             + " --encoding UTF-8 --pin-externals --revision 2 https://foo.com/svn/trunk@
https://foo.com/svn/branches/svnbranch@",
                          scmBranchParameters );
     }
 
@@ -83,7 +83,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svnbranch", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 https://foo.com/svn/trunk https://foo.com/svn/branches/svnbranch",
scmBranchParameters );
+                             + " --encoding UTF-8 https://foo.com/svn/trunk@ https://foo.com/svn/branches/svnbranch@",
scmBranchParameters );
     }
 
     public void testBranchUserNameSvnHttpsRemoteBranchingNoRevWithPinExternals()
@@ -98,7 +98,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svnbranch", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 --pin-externals https://foo.com/svn/trunk
https://foo.com/svn/branches/svnbranch", scmBranchParameters );
+                             + " --encoding UTF-8 --pin-externals https://foo.com/svn/trunk@
https://foo.com/svn/branches/svnbranch@", scmBranchParameters );
     }
 
     public void testBranchUserNameSvnHttps()
@@ -109,7 +109,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svnbranch", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 . https://foo.com/svn/branches/svnbranch",
null );
+                             + " --encoding UTF-8 . https://foo.com/svn/branches/svnbranch@",
null );
     }
 
     public void testBranchUserNameSvnSsh()
@@ -120,7 +120,7 @@ public class SvnExeBranchCommandTckTest
 
         testCommandLine( "scm:svn:svn+ssh://foo.com/svn/trunk", "svnbranch", messageFile,
"user",
                          "svn --username user --no-auth-cache --non-interactive copy --parents
--file " + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 . svn+ssh://user@foo.com/svn/branches/svnbranch"
);
+                             + " --encoding UTF-8 . svn+ssh://user@foo.com/svn/branches/svnbranch@"
);
     }
 
     private void testCommandLine( String scmUrl, String branch, File messageFile, String
user, String commandLine,
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/changelog/SvnChangeLogCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommandTest.java
index ed86411..f5729bd 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommandTest.java
@@ -42,14 +42,14 @@ public class SvnChangeLogCommandTest
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, null, null,
-                         "svn --non-interactive log -v http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineNoDatesLimitedCount()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, null, null, 40,
-                         "svn --non-interactive log -v --limit 40 http://foo.com/svn/trunk"
);
+                         "svn --non-interactive log -v --limit 40 http://foo.com/svn/trunk@"
);
     }
 
     public void testCommandLineWithDates()
@@ -59,7 +59,7 @@ public class SvnChangeLogCommandTest
         Date endDate = getDate( 2003, Calendar.OCTOBER, 10, GMT_TIME_ZONE );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, startDate, endDate,
-                         "svn --non-interactive log -v -r \"{2003-09-10 00:00:00 +0000}:{2003-10-10
00:00:00 +0000}\" http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r \"{2003-09-10 00:00:00 +0000}:{2003-10-10
00:00:00 +0000}\" http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineStartDateOnly()
@@ -68,7 +68,7 @@ public class SvnChangeLogCommandTest
         Date startDate = getDate( 2003, Calendar.SEPTEMBER, 10, 1, 1, 1, GMT_TIME_ZONE );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, startDate, null,
-                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:HEAD\"
http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:HEAD\"
http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineDateFormat()
@@ -78,7 +78,7 @@ public class SvnChangeLogCommandTest
         Date endDate = getDate( 2005, Calendar.NOVEMBER, 13, 23, 23, 23, GMT_TIME_ZONE );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, startDate, endDate,
-                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:{2005-11-13
23:23:23 +0000}\" http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:{2005-11-13
23:23:23 +0000}\" http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineEndDateOnly()
@@ -88,14 +88,14 @@ public class SvnChangeLogCommandTest
 
         // Only specifying end date should print no dates at all
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, null, endDate,
-                         "svn --non-interactive log -v http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithBranchNoDates()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "my-test-branch"
), null, null,
-                         "svn --non-interactive log -v http://foo.com/svn/branches/my-test-branch
http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v http://foo.com/svn/branches/my-test-branch@
http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithBranchStartDateOnly()
@@ -104,7 +104,7 @@ public class SvnChangeLogCommandTest
         Date startDate = getDate( 2003, Calendar.SEPTEMBER, 10, 1, 1, 1, GMT_TIME_ZONE );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "my-test-branch"
), startDate, null,
-                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:HEAD\"
http://foo.com/svn/branches/my-test-branch http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r \"{2003-09-10 01:01:01 +0000}:HEAD\"
http://foo.com/svn/branches/my-test-branch@ http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithBranchEndDateOnly()
@@ -114,7 +114,7 @@ public class SvnChangeLogCommandTest
 
         // Only specifying end date should print no dates at all
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "my-test-branch"
), null, endDate,
-                         "svn --non-interactive log -v http://foo.com/svn/branches/my-test-branch
http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v http://foo.com/svn/branches/my-test-branch@
http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithBranchBothDates()
@@ -124,28 +124,28 @@ public class SvnChangeLogCommandTest
         Date endDate = getDate( 2003, Calendar.OCTOBER, 10, GMT_TIME_ZONE );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "my-test-branch"
), startDate, endDate,
-                         "svn --non-interactive log -v -r \"{2003-09-10 00:00:00 +0000}:{2003-10-10
00:00:00 +0000}\" http://foo.com/svn/branches/my-test-branch http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r \"{2003-09-10 00:00:00 +0000}:{2003-10-10
00:00:00 +0000}\" http://foo.com/svn/branches/my-test-branch@ http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithStartVersion()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmRevision( "1" ), null,
-                         "svn --non-interactive log -v -r 1:HEAD http://foo.com/svn/trunk"
);
+                         "svn --non-interactive log -v -r 1:HEAD http://foo.com/svn/trunk@"
);
     }
 
     public void testCommandLineWithStartVersionAndEndVersion()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmRevision( "1" ), new
ScmRevision( "10" ),
-                         "svn --non-interactive log -v -r 1:10 http://foo.com/svn/trunk"
);
+                         "svn --non-interactive log -v -r 1:10 http://foo.com/svn/trunk@"
);
     }
 
     public void testCommandLineWithStartVersionAndEndVersionEquals()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmRevision( "1" ), new
ScmRevision( "1" ),
-                         "svn --non-interactive log -v -r 1 http://foo.com/svn/trunk" );
+                         "svn --non-interactive log -v -r 1 http://foo.com/svn/trunk@" );
     }
 
     public void testCommandLineWithBaseVersion()
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/checkout/SvnCheckOutCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommandTest.java
index 31a278f..73e2945 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommandTest.java
@@ -65,7 +65,7 @@ public class SvnCheckOutCommandTest
         throws Exception
     {
         testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", null,
-                         "svn --non-interactive checkout http://foo.com/svn/trunk "
+                         "svn --non-interactive checkout http://foo.com/svn/trunk@ "
                              + workingDirectory.getAbsolutePath() );
     }
 
@@ -73,7 +73,7 @@ public class SvnCheckOutCommandTest
         throws Exception
     {
         testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", "",
-                         "svn --non-interactive checkout http://foo.com/svn/trunk "
+                         "svn --non-interactive checkout http://foo.com/svn/trunk@ "
                              + workingDirectory.getAbsolutePath() );
     }
 
@@ -81,7 +81,7 @@ public class SvnCheckOutCommandTest
         throws Exception
     {
         testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", "10",
-                         "svn --non-interactive checkout -r 10 http://foo.com/svn/trunk "
+                         "svn --non-interactive checkout -r 10 http://foo.com/svn/trunk@
"
                              + workingDirectory.getAbsolutePath() );
     }
 
@@ -90,7 +90,7 @@ public class SvnCheckOutCommandTest
     {
         recursive = false;
         testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", "10",
-                         "svn --non-interactive checkout -N -r 10 http://foo.com/svn/trunk
"
+                         "svn --non-interactive checkout -N -r 10 http://foo.com/svn/trunk@
"
                              + workingDirectory.getAbsolutePath() );
     }
 
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/export/SvnExportCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
index bc92c25..4c702e4 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
@@ -36,7 +36,7 @@ public class SvnExportCommandTest
         File exportDirectory = new File( getBasedir() );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", exportDirectory, null,
-                         "svn --non-interactive export --force scm:svn:http://foo.com/svn/trunk"
);
+                         "svn --non-interactive export --force http://foo.com/svn/trunk@"
);
     }
 
     public void testGetExportCommandLineWithExplicitExportDirectory()
@@ -45,7 +45,7 @@ public class SvnExportCommandTest
         File exportDirectory = new File( getBasedir() );
 
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", exportDirectory, exportDirectory,
-                         "svn --non-interactive export --force scm:svn:http://foo.com/svn/trunk
" + exportDirectory );
+                         "svn --non-interactive export --force http://foo.com/svn/trunk@
" + exportDirectory + "@" );
     }
 
     private void testCommandLine( String scmUrl, File workingDirectory, File exportDirectory,
String commandLine )
@@ -55,7 +55,7 @@ public class SvnExportCommandTest
 
         SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) repository.getProviderRepository();
 
-        Commandline cl = SvnExeExportCommand.createCommandLine( svnRepository, exportDirectory,
null, scmUrl,
+        Commandline cl = SvnExeExportCommand.createCommandLine( svnRepository, exportDirectory,
null, svnRepository.getUrl(),
                                                                 exportDirectory != null?exportDirectory.getAbsolutePath():null
);
 
         assertCommandLine( commandLine, exportDirectory, cl );
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/list/SvnListCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommandTest.java
index 133cc31..7e57b7a 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommandTest.java
@@ -93,7 +93,7 @@ public class SvnListCommandTest
         Commandline cl = SvnListCommand.createCommandLine( getSvnRepository( scmUrl ), fileSet,
recursive,
                                                            new ScmRevision( revision ) );
 
-        assertCommandLine( commandLine + " http://foo.com/svn/trunk/.",
+        assertCommandLine( commandLine + " http://foo.com/svn/trunk/.@",
                            new File( System.getProperty( "java.io.tmpdir" ) ), cl );
     }
 }
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/mkdir/SvnMkdirCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommandTest.java
index dd124ec..d8dbc90 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnMkdirCommandTest.java
@@ -68,14 +68,14 @@ public class SvnMkdirCommandTest
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk",
-                         "svn --non-interactive mkdir --parents http://foo.com/svn/trunk/missing
" + messageFileString, false );
+                         "svn --non-interactive mkdir --parents http://foo.com/svn/trunk/missing@
" + messageFileString, false );
     }
 
     public void testCommandLineMkdirUrlWithUsername()
         throws Exception
     {
         testCommandLine( "scm:svn:http://anonymous@foo.com/svn/trunk",
-                         "svn --username anonymous --no-auth-cache --non-interactive mkdir
--parents http://foo.com/svn/trunk/missing " +
+                         "svn --username anonymous --no-auth-cache --non-interactive mkdir
--parents http://foo.com/svn/trunk/missing@ " +
                              messageFileString, false );
     }
 
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 154e7de..30c2b56 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,7 +44,7 @@ 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() +
-                             " --encoding UTF-8 --parents . svn+ssh://user@foo.com/svn/tags/svntag",
null );
+                             " --encoding UTF-8 --parents . svn+ssh://user@foo.com/svn/tags/svntag@",
null );
     }
 
     public void testTagRemoteTagHttps()
@@ -58,7 +58,7 @@ public class SvnExeTagCommandTckTest
         scmTagParameters.setPinExternals( false );
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svntag", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --file
" + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 --parents https://foo.com/svn/trunk https://foo.com/svn/tags/svntag",
scmTagParameters );
+                             + " --encoding UTF-8 --parents https://foo.com/svn/trunk@ https://foo.com/svn/tags/svntag@",
scmTagParameters );
     }
 
     public void testTagRemoteTagHttpsWithPinExternals()
@@ -72,7 +72,7 @@ public class SvnExeTagCommandTckTest
         scmTagParameters.setPinExternals( true );
         testCommandLine( "scm:svn:https://foo.com/svn/trunk", "svntag", messageFile, "user",
                          "svn --username user --no-auth-cache --non-interactive copy --file
" + messageFile.getAbsolutePath()
-                             + " --encoding UTF-8 --parents --pin-externals https://foo.com/svn/trunk
https://foo.com/svn/tags/svntag", scmTagParameters );
+                             + " --encoding UTF-8 --parents --pin-externals https://foo.com/svn/trunk@
https://foo.com/svn/tags/svntag@", scmTagParameters );
     }
 
     public void testTagRemoteTagHttpsWithRevision()
@@ -87,7 +87,7 @@ 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()
-                             + " --encoding UTF-8 --parents --revision 12 https://foo.com/svn/trunk
https://foo.com/svn/tags/svntag",
+                             + " --encoding UTF-8 --parents --revision 12 https://foo.com/svn/trunk@
https://foo.com/svn/tags/svntag@",
                          scmTagParameters );
     }
 
@@ -103,7 +103,7 @@ 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()
-                             + " --encoding UTF-8 --parents --revision 12 --pin-externals
https://foo.com/svn/trunk https://foo.com/svn/tags/svntag",
+                             + " --encoding UTF-8 --parents --revision 12 --pin-externals
https://foo.com/svn/trunk@ https://foo.com/svn/tags/svntag@",
                          scmTagParameters );
     }
 
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/update/SvnUpdateCommandTest.java
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommandTest.java
index 90a71d4..5e852c1 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommandTest.java
@@ -43,49 +43,49 @@ public class SvnUpdateCommandTest
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmTag( "" ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithEmptyBranch()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "" ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithEmptyVersion()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmRevision( "" ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithWhitespaceTag()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmTag( "  " ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithWhitespaceBranch()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "  " ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithWhitespaceRevision()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmRevision( "  " ),
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineWithoutTag()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", null,
-                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
);
+                         "svn --non-interactive update " + getUpdateTestFile().getAbsolutePath()
+ "@" );
     }
 
     public void testCommandLineTag()
@@ -93,7 +93,7 @@ public class SvnUpdateCommandTest
     {
         testCommandLine( "scm:svn:http://anonymous@foo.com/svn/trunk", new ScmRevision( "10"
),
                          "svn --username anonymous --no-auth-cache --non-interactive update
-r 10 " +
-                             getUpdateTestFile().getAbsolutePath() );
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithUsernameAndTag()
@@ -101,7 +101,7 @@ public class SvnUpdateCommandTest
     {
         testCommandLine( "scm:svn:http://anonymous@foo.com/svn/trunk", new ScmRevision( "10"
),
                          "svn --username anonymous --no-auth-cache --non-interactive update
-r 10 " +
-                             getUpdateTestFile().getAbsolutePath() );
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithCygwinProperty()
@@ -114,7 +114,7 @@ public class SvnUpdateCommandTest
             {
                 assertTrue( SvnUtil.getSettings().isUseCygwinPath() );
                 testCommandLine( "scm:svn:http://foo.com/svn/trunk", null,
-                                 "svn --non-interactive update /mnt/c/my_working_directory",
+                                 "svn --non-interactive update /mnt/c/my_working_directory@",
                                  new File( "c:\\my_working_directory" ) );
             }
             finally
@@ -128,8 +128,8 @@ public class SvnUpdateCommandTest
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk", new ScmBranch( "branches/my-test-branch"
),
-                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch
" +
-                             getUpdateTestFile().getAbsolutePath() );
+                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch@
" +
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithAbsoluteURLTag()
@@ -137,32 +137,32 @@ public class SvnUpdateCommandTest
     {
         testCommandLine( "scm:svn:http://foo.com/svn/trunk",
                          new ScmBranch( "http://foo.com/svn/branches/my-test-branch" ),
-                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch
" +
-                             getUpdateTestFile().getAbsolutePath() );
+                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch@
" +
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithNonDeterminantBase()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/some-project", new ScmBranch( "branches/my-test-branch"
),
-                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch
" +
-                             getUpdateTestFile().getAbsolutePath() );
+                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch@
" +
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithNonDeterminantBaseTrailingSlash()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/some-project/", new ScmBranch( "branches/my-test-branch"
),
-                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch
" +
-                             getUpdateTestFile().getAbsolutePath() );
+                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch@
" +
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     public void testCommandLineWithBranchSameAsBase()
         throws Exception
     {
         testCommandLine( "scm:svn:http://foo.com/svn/tags/my-tag", new ScmTag( "tags/my-tag"
),
-                         "svn --non-interactive switch http://foo.com/svn/tags/my-tag " +
-                             getUpdateTestFile().getAbsolutePath() );
+                         "svn --non-interactive switch http://foo.com/svn/tags/my-tag@ "
+
+                             getUpdateTestFile().getAbsolutePath() + "@" );
     }
 
     // ----------------------------------------------------------------------


Mime
View raw message