PerforceScmProvider.createClientspec should use the working dir's canonical 
path for the clientspec root
--------------------------------------------------------------------------------------------------------

         Key: SCM-184
         URL: http://jira.codehaus.org/browse/SCM-184
     Project: Maven SCM
        Type: Bug

  Components: maven-scm-provider-perforce  
    Reporter: John Didion


createClientspec should look like this:

{noformat}
    public static String createClientspec( PerforceScmProviderRepository repo, 
String specname, File workDir )
    {
        String clientspecName = getClientspecName( repo, workDir );
        String userName = getUsername( repo );
        String rootDir = null;
        try {
            rootDir = workDir.getCanonicalPath();
        } catch (IOException ex) {
            //getLogger().error("Error getting canonical path for working 
directory: " + workDir, ex);
            rootDir = workDir.getAbsolutePath();
        }

        StringBuffer buf = new StringBuffer();
        buf.append( "Client: " ).append( clientspecName ).append( NEWLINE );
        buf.append( "Root: " ).append( rootDir ).append( NEWLINE );
        buf.append( "Owner: " ).append( userName ).append( NEWLINE );
        buf.append( "View:" ).append( NEWLINE );
        buf.append( "\t" ).append( PerforceScmProvider.getCanonicalRepoPath( 
repo.getPath() ) );
        buf.append( " //" ).append( clientspecName ).append( "/..." ).append( 
NEWLINE );
        buf.append( "Description:" ).append( NEWLINE );
        buf.append( "\t" ).append( "Created by maven-scm-provider-perforce" 
).append( NEWLINE );
        return buf.toString();
    }
{noformat}

Otherwise, when used with continuum, the changelog command will never work. The 
continuum working directory always looks like 
CONTINUUM_HOME/bin/win32/../../apps/depot/69 when creating the clientspec, and 
perforce seems not to know how to deal with non-canonical paths, so perforce 
always just spits out an error message and returns no changes. This sucks 
because then build complete notifications never get sent.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to