Mark Struberg wrote:
technically there is no git repo which is 'better' than the other.
This hierarchy is an orga one.
If you can pull from my repo and from Jasons, from whom will you pull your
master mainly? Bet you will pull from Jasons. And I also bet all contributors
will try to get their changes being pulled by Jason and published in his repo
at the end of the day.
I think the canonical one would be equivalent to the current svn, where
committers have access to push in changes. This would be required to
maintain the "code provenance" but it would still make everyone's life
easier to make changes and contribute them...and our lives easier to
apply them.
> Does Maven SCM support *fully* GIT?
mvn release:prepare and release:perform
is working with git since more than a year now.
I think this is slightly misleading....
The only uncertain point is how we should handle multi-module builds.
Here's the rub. I talked with John after his chat with you on IRC. It
seems to be that the git scm actually clones the repo from the tag to
/target/checkout. (this is done because an actual checkout would replace
the current working folder out from under the running maven...not good
either). The problem is that a git tag is a tag of the whole repo, so
the target/checkout contains everything, not just the submodule being
released. Maven would need to know this and step into the correct folder
before executing the perform build.
Naturally this is a break from previous checkout based scm systems. The
proper fix (purely on speculation...i haven't looked at the code in a
long time) seems to be to allow the scm provider to calculate the
correct path for execution given a working copy. In svn's case, it would
simply return target/checkout, in git's case it would be either
target/checkout or target/checkout/xxxxx based on how the repo was
constructed.
This change would likely require an update to the interface, the release
plugin and the current scm wagons. Any takers? I'll probably dabble in
it myself if I can find some time.