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 Mon, 17 Mar 2008 11:43:47 GMT

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

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

I created the [SCM-370] and attached a patch there that will prevent the Perforce SCM provider
from creating 'difficult' specnames. Perhaps we can get Emanuelle to include the patch in
the SCM 1.1 release. 
Nevertheless this is just a workaround (which is fine) but Plexus Command line is still broken
([PLXUTILS-44]).

So todos for this issue are: 

# make Emanuelle to include patch in SCM 1.1 release
# make continuum use SCM 1.1
# release continuum

It can be simple as that.



> 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

        

Mime
View raw message