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)