You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "David SPORN (JIRA)" <ji...@codehaus.org> on 2015/03/12 16:59:18 UTC

[jira] (SCM-695) Mvn release plugin problems with too many - in name

    [ https://jira.codehaus.org/browse/SCM-695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=364886#comment-364886 ] 

David SPORN commented on SCM-695:
---------------------------------

_This is a copy of my comment on the issue [MRELEASE-701|https://jira.codehaus.org/browse/MRELEASE-701] _

Found the root cause :

* *module :* maven-scm-provider-gitexe-1.9.2.jar
* *package :* org.apache.maven.scm.provider.git.gitexe.command
* *Class#function :* GitCommandLineUtils#addTarget( Commandline cl, List<File> files ), around line 57

In this function, file names are processed to remove a common prefix, that is the path of the working directory :
{code:title=GitCommandLineUtils#addTarget( Commandline cl, List<File> files )|borderStyle=solid}
    public static void addTarget( Commandline cl, List<File> files )
    {
        if ( files == null || files.isEmpty() )
        {
            return;
        }
        final File workingDirectory = cl.getWorkingDirectory();
        try
        {
            final String canonicalWorkingDirectory = workingDirectory.getCanonicalPath();
            for ( File file : files )
            {
                String relativeFile = file.getPath();
                
                final String canonicalFile = file.getCanonicalPath();
                if ( canonicalFile.startsWith( canonicalWorkingDirectory ) )
                {
                    // so we can omit the starting characters
                    relativeFile = canonicalFile.substring( canonicalWorkingDirectory.length() );

                    if ( relativeFile.startsWith( File.separator ) )
                    {
                        relativeFile = relativeFile.substring( File.separator.length() );
                    }
                }

                // no setFile() since this screws up the working directory!
                cl.createArg().setValue( relativeFile );
            }
        }
        catch ( IOException ex )
        {
            throw new IllegalArgumentException( "Could not get canonical paths for workingDirectory = "
                + workingDirectory + " or files=" + files, ex );
        }
    }
{code}

This behaviour works well with a project organisation that follows maven convention, but in the case of a flat organisation and projects folder names being the name of the parent project + prefix, we get the observed result.

> Mvn release plugin problems with too many - in name
> ---------------------------------------------------
>
>                 Key: SCM-695
>                 URL: https://jira.codehaus.org/browse/SCM-695
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-git
>    Affects Versions: 1.7
>         Environment: Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
> Maven home: /home/devent/apps/apache-maven-3.0.3
> Java version: 1.7.0_b147-icedtea, vendor: Oracle Corporation
> Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.1/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "3.1.9-1.fc16.i686", arch: "i386", family: "unix"
>            Reporter: Erwin Mueller
>            Priority: Blocker
>         Attachments: mvn-release-prepare.log
>
>
> Have maven problems with modules containing too many "-"?
> I have projects that are named:
> globalpom-groovy/
> globalpom-groovy/globalpom-groovy/pom.xml < parent pom
> globalpom-groovy/globalpom-groovy-izpack/pom.xml
> globalpom-groovy/globalpom-groovy-izpack-snglejar/pom.xml
> globalpom-groovy/globalpom-groovy-testutils/pom.xml
> But if I do mvn release:prepare inside of globalpom-groovy/globalpom-groovy/, then I get the error:
> [INFO] Executing: /bin/sh -c cd 
> /mnt/read/projects/com.anrisoftware/globalpom/globalpom-groovy/globalpom-
> groovy && git add -- pom.xml -izpack/pom.xml -izpack-singlejar/pom.xml -
> testutils/pom.xml
> [INFO] Working directory: 
> /mnt/read/projects/com.anrisoftware/globalpom/globalpom-groovy/globalpom-
> groovy
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO] 
> [INFO] Global POM Groovy ................................. FAILURE [12.365s]
> [INFO] Global POM Groovy IzPack .......................... SKIPPED
> [INFO] Global POM Groovy IzPack Single Jar ............... SKIPPED
> [INFO] Global POM Groovy Test Utilities .................. SKIPPED
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 13.066s
> [INFO] Finished at: Sat Jan 21 15:45:50 CET 2012
> [INFO] Final Memory: 12M/152M
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-
> plugin:2.0:prepare (default-cli) on project globalpom-groovy: Unable to commit 
> files
> [ERROR] Provider message:
> [ERROR] The git-add command failed.
> [ERROR] Command output:
> [ERROR] fatal: pathspec 'globalpom-groovy/-izpack/pom.xml' did not match any 
> files
> Of course that's wrong 'globalpom-groovy/-izpack/pom.xml' should be 
> '../globalpom-groovy-izpack/pom.xml', or something like that.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)