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

Andreas Dangel edited comment on SCM-740 at 2/12/14 3:26 PM:
-------------------------------------------------------------

By default - maven-release-plugin 2.4.2 uses scm 1.7.
Once git has been localized, gitexe failed to parse "git status", hence SCM-686 
was done.

LANG=C gives you an English git output - however, this is not enough anymore.
It seems that git has been modified, to not return "#" as the git status output 
- which could be a git bug, as the man page still mentions this behavior.
Here's the change it git: 
https://github.com/git/git/commit/2556b9962e7c0353d562b7bf70eed11d8f29d0b0
There is a configuration to restore the old behavior: 
status.displayCommentPrefix


*Workaround*:
1. Configure old behavior: {{git config --add status.displayCommentPrefix true}}
2. make sure you switch to English (e.g. {{export LANG=C}})
3. run {{mvn release:prepare}} - it should work now


I also tried scm 1.9 and could reproduce the problem - it only happens, if you 
have a subdirectory and you are not releasing from the toplevel repository 
directory.
To run mvn release plugin with scm 1.9, add the following dependencies:
{noformat}
        <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-api</artifactId>
            <version>1.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-provider-gitexe</artifactId>
            <version>1.9</version>
        </dependency>
{noformat}


was (Author: adangel):
By default - maven-release-plugin 2.4.2 uses scm 1.7.
Once git has been localized, gitexe failed to parse "git status", hence SCM-686 
was done.

LANG=C gives you an English git output - however, this is not enough anymore.
It seems that git has been modified, to not return "#" as the git status output 
- which could be a git bug, as the man page still mentions this behavior.

Workaround:
1. Create a git wrapper shell script
{noformat}
#!/bin/bash
if [ "$1" = "status" ]; then
  OUTPUT=$(/usr/bin/git status)
  IFS="
"
  for line in $OUTPUT; do
    echo "#$line"
  done
else
  /usr/bin/git $*
fi
{noformat}

2. make sure you switch to English (e.g. {{export LANG=C}})
3. make sure, the git-wrapper script is in the path before the usual git binary 
(e.g. {{export PATH=/tmp/git-wrapper:$PATH}})
4. run {{mvn release:prepare}} - it should work now


I also tried scm 1.9 and could reproduce the problem - it only happens, if you 
have a subdirectory and you are not releasing from the toplevel repository 
directory.
To run mvn release plugin with scm 1.9, add the following dependencies:
{noformat}
        <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-api</artifactId>
            <version>1.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-provider-gitexe</artifactId>
            <version>1.9</version>
        </dependency>
{noformat}

> Maven Release Plugin releases SNAPSHOT instead of STABLE version
> ----------------------------------------------------------------
>
>                 Key: SCM-740
>                 URL: https://jira.codehaus.org/browse/SCM-740
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-git
>         Environment: Everywhere with maven-scm-provider-gitexe of version 1.9 
> (and maybe older)
>            Reporter: Jan Novotný
>         Attachments: Wrong_base_directory_used1.patch
>
>
> If you have following project structure:
> - superproject [Git repository root]
>   - projectA [release target]
>   - projectB [release target]
> in other words you release subproject of a larger Git repository separately, 
> you probably run at the same issue as we did. No recipe from above mentioned 
> sources solves your problems and during release:prepare phase still no commit 
> of stable pom.xml occurs. There is another bug in GitStatusConsumer class 
> that checks output of the git status --porcelain command and verifies 
> existency of the mentioned files on local filesystem. Regretfully it uses 
> working directory instead of git repository root as the base folder and thus 
> it constructs invalid path to the file where project folder directory is 
> duplicated.
> Problem is better described here: 
> http://blog.novoj.net/2014/01/24/maven-release-plugin-releases-snapshot-instead-of-stable-version



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

Reply via email to