David Sommerseth ha scritto:
> On 12/12/09 11:52, Samuli Seppänen wrote:
> >> FWIW using a good (rather than merely adequate) revision control
> >> system makes it much easier to keep the very latest code
> >> on-line and still perform regression tests, keep separate
> >> code branches for feature development, and so forth.
> >>   
> > Any suggestion which VCS would do the best job?
>
>
> Then I'll throw in my burning piece of wood to fire ;-) ... Well,
> discussing VCS'es is a really tricky thing, and sometimes can become
> more a religious war than a technical war.  Especially VCS discussions
> seems often to hit the nerve of emotions.  Just to make that clear, I do
> not want to contribute to a "religious" war, but purely look at the
> technical point of view.  But it is based on my experiences, and I
> admit, I have not tried all solutions.  I have strong opinions, but I
> don't mean to attack anyone with them.
>
> My experiences is mostly based on CVS, SVN and git.  Even though, I have
> barely touched Mercurial/hg.  And I'm not going to discuss CVS, as
> that's not a good solution at all, IMHO.  In addition, it's centralised,
> not distributed.
>
> I've been following the Apache Qpid project somewhat for sometime
> earlier.  At that time it was based on SVN, and to be honest, it was a
> nightmare to work with.  To get the commit log, it took over 10-15
> seconds or so.  To pull down the complete tree took over 30 minutes,
> with a very decent connection (8Mbit++).  I believe the reason is that
> it was over 65.000 commits in the tree.  Branching is also somewhat
> cumbersome, even though it do work.
>
> Then I've been working with the Linux kernel.  A git repository which is
> getting close to 7-800MB (haven't checked in a while), it contains
> several years of commit history (it goes back to the 2.6.13 kernel or
> so, iirc).  And it takes milliseconds to look into the commit log.
> Cloning the kernel is done in 10-15 minutes tops, on the same connection
> as Qpid via SVN.  Everyone can create their own branches (in
> milliseconds), and can easily provide patches suitable for mailing.  In
> fact, you can send the patches via mail directly if you configure things
> correctly.  You can use multiple remote repositories which you can
> track, and you merge in the remote branches how you like yourself.
>
> What that means:  Everyone will pull at least one public git tree, which
> James "ownes".  Then James will have his "inner circle" with, f.ex.
> three persons.  Each of these three persons have their own public git
> trees, at least public to James.  These persons retrieve patches for
> review either via mail, patch files or other remote trees.  They will
> merge in changes into their own trees and publish their tree.  James
> will then only need to pull these three trees and merge them, whichever
> way James likes.  And when James is happy, he pushes his tree out.  Now,
> the good thing - if this is done right, people who committed changes to
> their own local trees, and git their trees pulled somehow by someone
> else closer to James, they can pull James' tree and merge it, without
> have no conflicts.  In fact, they might even find their commit ID's
> staying the same (depending on how patch was merged in on the way to
> James' tree).
>
>
> And git *is* pretty *easy* to get started with /nowadays/ (it's many
> years since it was difficult to use and more "kernel oriented").  Coming
> from the world of CVS and SVN, it took me 2-3 hours to de-learn CVS/SVN
> and 30 minutes to learn the basic git stuff.  And now, I can hardly
> imagine anything else.  I even use it for non-source code stuff too now,
> whenever I need to track some changes, and it takes me less than 10
> seconds to get it ready for it (really!).
>
> A very good resource for learning git, is a book called "Pro Git" ...
> <http://progit.org/book/>.  A video of Linus explaining his thoughts
> behind git, can be viewed here:
> <http://www.youtube.com/watch?v=4XpnKHJAok8>
>
>
> But if SVN is preferred by OpenVPN, I'll most probably make use of
> git-svn, which is a SVN client for git.  It at least speeds up things
> for me, even though there are some awkward things with this, trying to
> make git stuff out of SVN, as that's not always easy due to the very
> different way of VCS designs ... but it do work somehow, and when the
> cloning is done - it is very fast again.
>
> So for me, git is among the greatest VCS' and, IMO, superior to SVN ...
> and I would therefore recommend git.  But it's not the only solution.
>
>
> kind regards,
>
> David Sommerseth
Any objections to GIT? If not, we should consider using that as our
primary future VCS. That is, when we can agree upon a new development
model that benefits from using it. I definitely need to delearn my SVN
skills, too, and start digging into GIT.

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc




Reply via email to