Author: evenisse
Date: Thu Sep 21 12:49:18 2006
New Revision: 448647

URL: http://svn.apache.org/viewvc?view=rev&rev=448647
Log:
[SCM-235] Fix tagbase url resolution

Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java?view=diff&rev=448647&r1=448646&r2=448647
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
 Thu Sep 21 12:49:18 2006
@@ -64,14 +64,14 @@
         for ( int i = 0; i < SVN_BASE_DIRS.length; i++ )
         {
             String base = "/" + SVN_BASE_DIRS[i];
-            int pos = repoPath.indexOf( base + "/" );
-            if ( pos >= 0 )
+            int pos = repoPath.lastIndexOf( base + "/" );
+            if ( repoPath.endsWith( base ) )
             {
-                return repoPath.substring( 0, pos );
+                return repoPath.substring( 0, repoPath.length() - 
base.length() );
             }
-            else if ( repoPath.endsWith( base ) )
+            else if ( pos >= 0 )
             {
-                return repoPath.substring( 0, repoPath.length() - 
base.length() );
+                return repoPath.substring( 0, pos );
             }
         }
 

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java?view=diff&rev=448647&r1=448646&r2=448647
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java
 Thu Sep 21 12:49:18 2006
@@ -108,8 +108,10 @@
     public void testGetProjectRootDoubleProjectRoots()
         throws Exception
     {
-        // Not sure why anyone would do this, but creating test case to assure 
it behavior stays consistent
-        testGetProjectRoot( 
"scm:svn:http://foo.com/svn/tags/my-tag/tags/another-tag/";, 
"http://foo.com/svn"; );
+        testGetProjectRoot( 
"scm:svn:http://foo.com/svn/tags/my-tag/tags/another-tag/";,
+                            "http://foo.com/svn/tags/my-tag"; );
+        testGetProjectRoot( 
"scm:svn:http://foo.com/svn/trunk/a_directory/trunk/";,
+                            "http://foo.com/svn/trunk/a_directory"; );
     }
 
     // ----------------------------------------------------------------------
@@ -173,6 +175,10 @@
         testResolveTagUrl( 
"scm:svn:svn+ssh://foo.com/svn/trunk/my_path/to/my_dir", "my-tag",
                            "svn+ssh://foo.com/svn/tags/my-tag" );
 
+        testResolveTagUrl( 
"scm:svn:svn+ssh://foo.com/svn/trunk/my_path/to/my_dir/trunk/mydir", "my-tag",
+                           
"svn+ssh://foo.com/svn/trunk/my_path/to/my_dir/tags/my-tag" );
+        testResolveTagUrl( 
"scm:svn:file://localhost/C:/mydir/myproject/trunk/my-module/target/scm-src/trunk",
 "my-tag",
+                           
"file://localhost/C:/mydir/myproject/trunk/my-module/target/scm-src/tags/my-tag"
 );
     }
 
     public void testResolveTagWithTagBaseSpecified()


Reply via email to