continuum-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebastian Annies (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (CONTINUUM-1402) Syncing with Perforce on Linux/Unix/Bash fails
Date Tue, 13 May 2008 20:45:27 GMT

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

Sebastian Annies commented on CONTINUUM-1402:
---------------------------------------------

SCM-370 has been scheduled for SCM Release 1.1. Hoooray! 

> 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
>             Fix For: 1.x
>
>
> 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

        

Mime
View raw message