git-commit-id-maven-plugin
git-commit-id-maven-plugin copied to clipboard
Enh: Find dotGitDirectory using rev-parse --show-toplevel
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.
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)
FWIW, git rev-parse --git-dir
directly gives the git directory and automatically follows submodule links correctly.
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.