Author: evenisse
Date: Wed May 14 14:17:56 2008
New Revision: 656438

URL: http://svn.apache.org/viewvc?rev=656438&view=rev
Log:
[SCM-370] Fix client spec generation on unix os
Submitted by : Sebastian Annies

Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java?rev=656438&r1=656437&r2=656438&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java
 Wed May 14 14:17:56 2008
@@ -57,8 +57,6 @@
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 
-import sun.security.action.GetLongAction;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -337,7 +335,8 @@
      Created by maven-scm-provider-perforce
 
      */
-    public static String createClientspec(ScmLogger logger, 
PerforceScmProviderRepository repo, File workDir, String repoPath )
+    public static String createClientspec( ScmLogger logger, 
PerforceScmProviderRepository repo, File workDir,
+                                           String repoPath )
     {
         String clientspecName = getClientspecName( logger, repo, workDir );
         String userName = getUsername( logger, repo );
@@ -368,19 +367,20 @@
 
     public static final String DEFAULT_CLIENTSPEC_PROPERTY = 
"maven.scm.perforce.clientspec.name";
 
-    public static String getClientspecName( ScmLogger 
logger,PerforceScmProviderRepository repo, File workDir )
+    public static String getClientspecName( ScmLogger logger, 
PerforceScmProviderRepository repo, File workDir )
     {
         String def = generateDefaultClientspecName( logger, repo, workDir );
         // until someone put clearProperty in 
DefaultContinuumScm.getScmRepository( Project , boolean  )
         String l = System.getProperty( DEFAULT_CLIENTSPEC_PROPERTY, def );
-        if ( l == null || "".equals( l.trim() ) ) 
+        if ( l == null || "".equals( l.trim() ) )
         {
             return def;
         }
         return l;
     }
 
-    private static String generateDefaultClientspecName(ScmLogger logger, 
PerforceScmProviderRepository repo, File workDir )
+    private static String generateDefaultClientspecName( ScmLogger logger, 
PerforceScmProviderRepository repo,
+                                                         File workDir )
     {
         String username = getUsername( logger, repo );
         String hostname;
@@ -388,8 +388,8 @@
         try
         {
             hostname = InetAddress.getLocalHost().getHostName();
-            // client specs cannot contain forward slashes; backslash is okay
-            path = workDir.getCanonicalPath().replace( '/', '\\' );
+            // [SCM-370][SCM-351] client specs cannot contain forward slashes, 
spaces and ~; "-" is okay
+            path = workDir.getCanonicalPath().replaceAll( "[/ ~]", "-" );
         }
         catch ( UnknownHostException e )
         {
@@ -451,8 +451,8 @@
             loc = where.getDepotLocation( pom );
             if ( loc == null )
             {
-               loc = repo.getPath();
-               log.debug( "cannot find depot => using " + loc );
+                loc = repo.getPath();
+                log.debug( "cannot find depot => using " + loc );
             }
             else if ( loc.endsWith( "/pom.xml" ) )
             {


Reply via email to