git-commit-id-maven-plugin icon indicating copy to clipboard operation
git-commit-id-maven-plugin copied to clipboard

Enh: Find dotGitDirectory using rev-parse --show-toplevel

Open louisburton opened this issue 10 years ago • 3 comments

I can see code that attempts to find the dotGitDirectory. It seems to look up the parent structure for the .git directory. However, many projects don't have the parent in the same project or the parent is not the same pom as the aggregator/reactor. When you have a nested maven module structure it is hard to determine where the .git directory is, when these sub modules are not git submodules (remotely source controlled). You may want to run builds from the reactor or an individual sub module, making the working directory unreliable also.

The following would get the .git directory I believe and I believe JGit supports the rev-parse command.

git rev-parse --show-toplevel

A quick google turns up other people that have hit this error and pulled out the plugin as a result. https://jira.codehaus.org/browse/GEOT-4042 Sorry, I don't have a pull request right now - I use a workaround with relative paths from different modules.

louisburton avatar May 14 '14 02:05 louisburton

Hi and thanks for the info. Yeah this would be cool to implement... maybe with the raise of the native impl. Not sure if jgit supports the --shot-toplevel option though (yes, it does support rev-parse)

ktoso avatar May 24 '14 22:05 ktoso

FWIW, git rev-parse --git-dir directly gives the git directory and automatically follows submodule links correctly.

maiergre avatar Oct 30 '14 00:10 maiergre

Following line can be used as a work-around: <dotGitDirectory>${maven.multiModuleProjectDirectory}/.git</dotGitDirectory>

But this definitely wouldn't work correctly in case your maven project spans across multiple repositories using git submodules.

KTannenberg avatar Mar 06 '19 22:03 KTannenberg