You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/09/09 00:05:14 UTC

[maven-scm] branch SCM-859 updated (67b4a18 -> 37e76a1)

This is an automated email from the ASF dual-hosted git repository.

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


 discard 67b4a18  [SCM-859] Subversion commands don't work if directory/URL contains '@'
     new 37e76a1  [SCM-859] Subversion commands don't work if directory/URL contains '@'

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (67b4a18)
            \
             N -- N -- N   refs/heads/SCM-859 (37e76a1)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../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       | 10 ++++-----
 8 files changed, 39 insertions(+), 39 deletions(-)


[maven-scm] 01/01: [SCM-859] Subversion commands don't work if directory/URL contains '@'

Posted by mi...@apache.org.
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 37e76a1dbdae6aec195d0120fbd49fc00950e989
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun Sep 9 01:35:53 2018 +0200

    [SCM-859] Subversion commands don't work if directory/URL contains '@'
---
 .../svnexe/command/branch/SvnBranchCommand.java    | 12 +++++-----
 .../command/changelog/SvnChangeLogCommand.java     |  8 ++++---
 .../command/checkout/SvnCheckOutCommand.java       |  2 +-
 .../svnexe/command/export/SvnExeExportCommand.java |  4 ++--
 .../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    | 11 ++++-----
 .../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       | 10 ++++-----
 18 files changed, 72 insertions(+), 64 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..6ef3fa6 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,11 +142,11 @@ 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 ) )
         {
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..b4c1ac3 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;
     }
 
@@ -147,12 +147,13 @@ 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 );
             }
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..bc375bb 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..38127f6 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
@@ -128,7 +128,7 @@ 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 " +
+                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch@ " +
                              getUpdateTestFile().getAbsolutePath() );
     }
 
@@ -137,7 +137,7 @@ 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 " +
+                         "svn --non-interactive switch http://foo.com/svn/branches/my-test-branch@ " +
                              getUpdateTestFile().getAbsolutePath() );
     }
 
@@ -145,7 +145,7 @@ public class SvnUpdateCommandTest
         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 " +
+                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch@ " +
                              getUpdateTestFile().getAbsolutePath() );
     }
 
@@ -153,7 +153,7 @@ public class SvnUpdateCommandTest
         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 " +
+                         "svn --non-interactive switch http://foo.com/svn/some-project/branches/my-test-branch@ " +
                              getUpdateTestFile().getAbsolutePath() );
     }
 
@@ -161,7 +161,7 @@ public class SvnUpdateCommandTest
         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 " +
+                         "svn --non-interactive switch http://foo.com/svn/tags/my-tag@ " +
                              getUpdateTestFile().getAbsolutePath() );
     }