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()