Return-Path: Delivered-To: apmail-maven-scm-commits-archive@www.apache.org Received: (qmail 91484 invoked from network); 22 May 2008 21:31:57 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 May 2008 21:31:57 -0000 Received: (qmail 97678 invoked by uid 500); 22 May 2008 21:31:59 -0000 Delivered-To: apmail-maven-scm-commits-archive@maven.apache.org Received: (qmail 97654 invoked by uid 500); 22 May 2008 21:31:59 -0000 Mailing-List: contact scm-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: scm-dev@maven.apache.org Delivered-To: mailing list scm-commits@maven.apache.org Received: (qmail 97645 invoked by uid 99); 22 May 2008 21:31:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 May 2008 14:31:59 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 May 2008 21:31:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D4A8B23889C1; Thu, 22 May 2008 14:31:25 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r659265 - in /maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn: maven-scm-provider-svn-commons/ maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/ maven-scm-provider-svn-commons/src/main/mdo/ mav... Date: Thu, 22 May 2008 21:31:24 -0000 To: scm-commits@maven.apache.org From: evenisse@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080522213125.D4A8B23889C1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: evenisse Date: Thu May 22 14:31:23 2008 New Revision: 659265 URL: http://svn.apache.org/viewvc?rev=659265&view=rev Log: [SCM-368] Fix Windows path length limitations Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml (with props) Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo maven/scm/trunk/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 maven/scm/trunk/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 Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml?rev=659265&r1=659264&r2=659265&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml Thu May 22 14:31:23 2008 @@ -43,7 +43,7 @@ - 1.0.0 + 1.1.0 src/main/mdo/svn-settings.mdo 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/util/SvnUtil.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/util/SvnUtil.java?rev=659265&r1=659264&r2=659265&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.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/util/SvnUtil.java Thu May 22 14:31:23 2008 @@ -34,14 +34,20 @@ */ public class SvnUtil { + protected static final String SVN_SETTINGS_FILENAME = "svn-settings.xml"; + + public static final File DEFAULT_SETTINGS_DIRECTORY = new File( System.getProperty( "user.home" ), ".scm" ); + + private static File settingsDirectory = DEFAULT_SETTINGS_DIRECTORY; + private SvnUtil() { } public static Settings getSettings() { - File scmUserDir = new File( System.getProperty( "user.home" ), ".scm" ); - File settingsFile = new File( scmUserDir, "svn-settings.xml" ); + File scmUserDir = settingsDirectory; + File settingsFile = new File( scmUserDir, SVN_SETTINGS_FILENAME ); if ( settingsFile.exists() ) { @@ -68,4 +74,9 @@ return new Settings(); } + + public static void setSettingsDirectory( File directory ) + { + settingsDirectory = directory; + } } Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo?rev=659265&r1=659264&r2=659265&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo Thu May 22 14:31:23 2008 @@ -22,6 +22,15 @@ Instructs Subversion to read configuration information from the specified directory instead of the default location. ]]> + + useCygwinPath + 1.1.0+ + boolean + false + + Modified: maven/scm/trunk/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 URL: http://svn.apache.org/viewvc/maven/scm/trunk/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?rev=659265&r1=659264&r2=659265&view=diff ============================================================================== --- maven/scm/trunk/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 (original) +++ maven/scm/trunk/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 Thu May 22 14:31:23 2008 @@ -34,6 +34,8 @@ import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; import org.apache.maven.scm.provider.svn.svnexe.command.SvnCommandLineUtils; import org.apache.maven.scm.provider.svn.svnexe.command.changelog.SvnChangeLogCommand; +import org.apache.maven.scm.provider.svn.util.SvnUtil; +import org.apache.maven.scm.providers.svn.settings.Settings; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.cli.CommandLineException; import org.codehaus.plexus.util.cli.CommandLineUtils; @@ -88,6 +90,17 @@ public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, ScmVersion version ) { + Settings settings = SvnUtil.getSettings(); + + String workingDir = workingDirectory.getAbsolutePath(); + + if ( settings.isUseCygwinPath() ) + { + workingDir = "/cygdrive/" + workingDir; + workingDir = StringUtils.replace( workingDir, ":", "" ); + workingDir = StringUtils.replace( workingDir, "\\", "/" ); + } + if ( version != null && StringUtils.isEmpty( version.getName() ) ) { version = null; @@ -105,7 +118,7 @@ cl.createArgument().setValue( version.getName() ); } - cl.createArgument().setValue( workingDirectory.getAbsolutePath() ); + cl.createArgument().setValue( workingDir ); } else { @@ -123,7 +136,7 @@ cl.createArgument().setValue( SvnTagBranchUtils.resolveBranchUrl( repository, (ScmBranch) version ) ); } - cl.createArgument().setValue( workingDirectory.getAbsolutePath() ); + cl.createArgument().setValue( workingDir ); } } Modified: maven/scm/trunk/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 URL: http://svn.apache.org/viewvc/maven/scm/trunk/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?rev=659265&r1=659264&r2=659265&view=diff ============================================================================== --- maven/scm/trunk/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 (original) +++ maven/scm/trunk/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 Thu May 22 14:31:23 2008 @@ -25,7 +25,9 @@ import org.apache.maven.scm.ScmTestCase; import org.apache.maven.scm.ScmVersion; import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; +import org.apache.maven.scm.provider.svn.util.SvnUtil; import org.apache.maven.scm.repository.ScmRepository; +import org.codehaus.plexus.util.Os; import org.codehaus.plexus.util.cli.Commandline; import java.io.File; @@ -102,6 +104,20 @@ getUpdateTestFile().getAbsolutePath() ); } + public void testCommandLineWithCygwinProperty() + throws Exception + { + if ( Os.isFamily( Os.FAMILY_WINDOWS ) ) + { + SvnUtil.setSettingsDirectory( getTestFile( "src/test/resources/svn/update/cygwin" ) ); + assertTrue( SvnUtil.getSettings().isUseCygwinPath() ); + testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, + "svn --non-interactive update /cygdrive/c/my_working_directory", + new File( "C:\\my_working_directory" ) ); + SvnUtil.setSettingsDirectory( SvnUtil.DEFAULT_SETTINGS_DIRECTORY ); + } + } + public void testCommandLineWithRelativeURLTag() throws Exception { @@ -165,6 +181,12 @@ { File workingDirectory = getUpdateTestFile(); + testCommandLine( scmUrl, version, commandLine, workingDirectory ); + } + + private void testCommandLine( String scmUrl, ScmVersion version, String commandLine, File workingDirectory ) + throws Exception + { Commandline cl = SvnUpdateCommand.createCommandLine( getSvnRepository( scmUrl ), workingDirectory, version ); assertCommandLine( commandLine, workingDirectory, cl ); Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml?rev=659265&view=auto ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml (added) +++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml Thu May 22 14:31:23 2008 @@ -0,0 +1,3 @@ + + true + Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/update/cygwin/svn-settings.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision