[ 
http://jira.codehaus.org/browse/CONTINUUM-1402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_106601
 ] 

Sebastian Annies edited comment on CONTINUUM-1402 at 9/5/07 4:40 PM:
---------------------------------------------------------------------

Can someone concerned please have a look into PLXUTILS-44 and comment my 
comment? I just don't know how to fix that correctly! Any hints? 

Concerning single quotes: 
If the maven-scm provider adds the single quotes - what about windows then?


 was:
Can someone concerned please have a look into PLXUTILS-44 and comment my 
comment? I just don't know how to fix that correctly! Any hints? 

> Syncing with Perforce on Linux/Unix/Bash fails
> ----------------------------------------------
>
>                 Key: CONTINUUM-1402
>                 URL: http://jira.codehaus.org/browse/CONTINUUM-1402
>             Project: Continuum
>          Issue Type: Bug
>          Components: Integration - Maven 2, SCM
>    Affects Versions: 1.1-beta-2
>         Environment: Bash
>            Reporter: Sebastian Annies
>            Priority: Critical
>
> When a client is created it is named:
> E.g.{{monospaced}} 
> sannies-sojus-MavenSCM-\opt\continuum-1.1-beta-3-SNAPSHOT\apps\continuum\webapp\WEB-INF\working-directory\6{{monospaced}}
> that is ok, but now comes the sync command and uses following commandline
> {{monospaced}}
> /bin/bash -c "p4 -d 
> /opt/continuum-1.1-beta-3-SNAPSHOT/apps/continuum/webapp/WEB-INF/working-directory/1
>  
> -cbackground-sojus-MavenSCM-\opt\continuum-1.1-beta-3-SNAPSHOT\apps\continuum\webapp\WEB-INF\working-directory\1
>  sync"
> {{monospaced}}
> The Bash now removes the backslashes in the client name! The result is that 
> the client is not existent and perforce returns with an error. 
> I think continuum does everything allright but we need the ticket here to be 
> reminded to switch to a new plexus-utils or maven-scm if it is fixed there. 
> The Problem starts in 'PerforceCheckOutCommand':
> {{monospaced}}
>     public static Commandline createCommandLine( 
> PerforceScmProviderRepository repo, File workingDirectory,
>                                                  ScmVersion version, String 
> specname )
>     {
>         Commandline command = PerforceScmProvider.createP4Command( repo, 
> workingDirectory );
> {color:red} 
>         command.createArgument().setValue( "-c" + specname  );
> {color}
>         command.createArgument().setValue( "sync" );
>         // Use a simple heuristic to determine if we should use the Force flag
>         // on sync.  Forcing sync is a HUGE performance hit but is required in
>         // rare instances where source is somehow deleted.  If the target
>         // directory is completely empty, assume a force is required.  If
>         // not empty, we assume a previous checkout was already done and a 
> normal
>         // sync will suffice.
>         // SCM-110
>         String[] files = workingDirectory.list();
>         if ( files == null || files.length == 0 )
>         {
>             // We need to force so checkout to an empty directory will work.
>             command.createArgument().setValue( "-f" );
>         }
>         // Not sure what to do here. I'm unclear whether we should be
>         // sync'ing each file individually to the label or just sync the
>         // entire contents of the workingDir. I'm going to assume the
>         // latter until the exact semantics are clearer.
>         if ( version != null && StringUtils.isNotEmpty( version.getName() ) )
>         {
>             command.createArgument().setValue( "@" + version.getName() );
>         }
>         return command;
> {{monospaced}}
> The {{monospaced}}specname  {{monospaced}} contains the backslashes and is 
> these are neither escaped nor quoted! Hmm ... Is that a job that the 
> CommandLine should handle? I think so!
> The next thing I will do is to file an issue at plexus-utils and link the 
> issues.

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