El 20/9/2007, a las 1:47, Micah Cowan escribió:

Matthew Woehlke wrote:
Micah Cowan wrote:
Since I do virtually all my work on a laptop, which is usually but not
always connected to the Wired, I have begun experimenting with
distributed SCMs. I have recently been using Mercurial for work on Wget, and then synching the work with Subversion, and am very happy with it so far. I would like to consider moving Wget development from Subversion to
Mercurial at some point in the future, if it continues to work well.

Have you already considered and rejected git? I'm not trying to start a
VCS war, it's just that I've seen some other GNU projects (notably
coreutils and gnulib) moving to git and want to know you didn't pick hg
just because it's the first DVCS you liked.

I meant to say this: alternative suggestions for DVCS are still welcome.
And yes, hg is in fact the first DVCS I liked. :)

I strongly recommend Git for the following reasons:

- it is very, very, very fast
- mature, robust, well-tested codebase
- simple, elegant and powerful design (underlying model)
- highly active, competent developer community
- very pleasant command-line experience (colorized diff output, intelligent use of pager, many convenient tools like "git stash") - excellent web interface (gitweb) and visualization tools (gitk, git- gui) included - promising trajectory (likelihood of ever-larger userbase thanks to association with Linux kernel and other high-profile projects)

There are plenty of other reasons too, but the ones above are the ones that most stand out for me compared with my experience with other SCMs (CVS, Subversion and SVK).

I considered git first, actually, but concluded that it's not
appropriate, because from what I've seen it just really isn't
multiplatform at all. From what I've seen, it looks absolutely
terrific... if you're a Unix user. Bollocks to you if you're not. :)

Windows is currently officially supported via the Cygwin POSIX compatibility layer, with a "native" (non-POSIX) fork known as "msysgit" is under active development (<http://code.google.com/p/ msysgit/>, <http://git.or.cz/gitwiki/WindowsInstall>).

Git also has a reputation for being more difficult to use. Linus says
this is no longer so, but I'm not sure I'd trust his opinion on that...

Basic use is exceedingly simple and can be picked up in a 30 minute tutorial. To go beyond the basic "checkout, edit, commit" cycle requires some openness of mind and a willingness to learn about the underlying ideas of distributed version control, but this is true for any distributed SCM.

Advanced use is hard. Or to put that more accurately: *learning* advanced use can be hard but once you've covered the learning curve Git actually makes it exceedingly *easy* to do some pretty amazing things.

:) It is also rather short on documentation.

That's not true: there is a *huge* amount of high-quality documentation. If you want to go from "basic use" to "advanced use" and really *understand* what makes Git tick then there is no shortage of excellent docs.

Tutorial:
<http://www.kernel.org/pub/software/scm/git/docs/tutorial.html>

User manual:
<http://www.kernel.org/pub/software/scm/git/docs/user-manual.html>

Examples:
<http://www.kernel.org/pub/software/scm/git/docs/everyday.html>

Wiki:
<http://git.or.cz/gitwiki>

Extensive man pages:
<http://www.kernel.org/pub/software/scm/git/docs/>

Intro for Subversion users:
<http://git.or.cz/course/svn.html>

And that's just the "official" documentation. There are plenty of other resources locatable via Google; here are some examples:

<http://utsl.gen.nz/talks/git-svn/intro.html>
<http://eagain.net/articles/git-for-computer-scientists/>

Cheers,
Wincent





Reply via email to