Interesting... After reading about distributed SCMs for some time now
I think I'm ready to take the plugin and try some experiments as
Jason as done.
My only worry so far about using a tool like Git was about the
tooling (in IDE, etc). Now that Jason as taken the plunge, I'll do
some research on it too in the background.
-Vincent
Begin forwarded message:
From: Jason van Zyl <jason(a)maven.org>
Date: September 29, 2007 7:40:42 PM CEDT
To: Maven Developers List <dev(a)maven.apache.org>
Subject: An Experiment with GIT
Reply-To: "Maven Developers List" <dev(a)maven.apache.org>
Hi,
For anyone who wants to make changes to Maven but doesn't have
access I am going to setup a GIT repository to try and enable some
distributed development. After using GIT for about a week I'm
having a hard time using SVN but obviously we're not going to be
switching anytime soon.
But for anyone who has patches or wants to try and work with me to
get changes in I am going to try this method of publishing Maven as
a GIT repository which will allow anyone to clone the repository
and work on any changes you like in a controlled way. Once you
clone you can commit changes to your own copy of Maven and do
whatever you like. Then in order for me to see your changes I can
simply pull from your originally cloned repository to a branch on
my side and merge. Merging is sooooooo easy with GIT. So easy in
fact that it makes you wonder how SVN got it so wrong and makes it
so painful compared to GIT.
This is the model that the Linux kernel uses where anyone has a
real copy of the repository, they work as they like, creating
branches for features of what have you.
I am trying this with Oleg Gusakov who has many ideas and is
helping me do some experiments with the artifact resolution system.
But anyone else who is interested in trying just let me know. This
document is the most helpful:
http://utsl.gen.nz/talks/git-svn/intro.html
And a little collection of things I have read about GIT:
http://del.icio.us/jvanzyl/git
It is so damn fast it is unbelievable. With the visual tool that
comes with it you can see the entire history of the project in a
few minutes. It is very, very cool. I simply cannot believe how
easy it is to merge bits from all over the place. My hope is that
this method being truly distributed means that people can work on
their branches in a way that's natural and we remove the immense
tedium working with patches. If you have something good, it's now
very easy for me to pull a branch from you and try it. If that
branch works it then takes me a second to merge it. I test and them
push back to subversion using the git-svn bridge.
In the short term I really only want to try with a few people but
if you're keen, want to learn about GIT (which I highly, highly
recommend) then I will take your patches. I think any developer
here and anyone who has ever tried to contribute changes sees that
the JIRA+patch model is highly unworkable and bordering on
completely useless. JIRA might be fine to raise the issue but with
a reference to a GIT repository to pull from it will make life
infinitely easier. People who are not committers can work with
people that are in a way that resembles everyon being part of the
team. Dealing with patches just sucks ass and as a result we don't
look at them nearly as often as we should so I hope this can become
a model that enables people to contribute in a more effective way.
I'm going to try this with Oleg but I am highly hopeful. I will
help anyone who wants to try this as I see this as a way to truly
collaborate with the community. Down with JIRA+patches! All hail
JIRA+GIT! :-)
Thanks,
Jason