Richard DiCroce created SCM-806:
-----------------------------------

             Summary: JGit impl should look for repositories in parent 
directories
                 Key: SCM-806
                 URL: https://issues.apache.org/jira/browse/SCM-806
             Project: Maven SCM
          Issue Type: Bug
          Components: maven-scm-provider-git
    Affects Versions: 1.9.4
            Reporter: Richard DiCroce


The JGit SCM implementation only works if the path passed to its commands 
points to a Git repository directory or a directory that contains a Git 
repository directory. This behavior is different from the Git executable, which 
can be run in any subdirectory and will find the Git repository by searching 
parent directories.

This difference creates a problem for the maven-release-plugin when used on 
flat multi-module projects. The prepare goal needs to check for SCM changes, 
and the JGit implementation will throw an exception, causing the release to 
fail. This happens because the path provided is the basedir of the project you 
invoke the plugin on, which is not the directory that contains the Git 
repository. As far as I can tell, there is no way to change the directory that 
maven-release-plugin passes during prepare. (The workingDirectory configuration 
option only affects the perform goal.)

So I have created this patch to make the JGit implementation better mimic the 
GitExe implementation. It alters most of the commands (with the exception of 
CheckOut) to search parent directories for the repository and respect Git 
environment variables.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to