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