qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Git/SVN/CVS? was Re: [Qemu-devel] What does code_copy_enabled do?


From: Rob Landley
Subject: Re: Git/SVN/CVS? was Re: [Qemu-devel] What does code_copy_enabled do?
Date: Mon, 11 Feb 2008 20:34:51 -0600
User-agent: KMail/1.9.6 (enterprise 0.20070907.709405)

On Monday 11 February 2008 15:28:17 Johannes Schindelin wrote:
> Hi,
>
> On Mon, 11 Feb 2008, Rob Landley wrote:
> > I've been using git://git.kernel.dk/data/git/qemu.git although I
> > personally prefer mercurial.  (It's easier to learn and to use, you get
> > the web viewer for free, etc.)
>
> <rant>I really grow tired of people perpetuating how "easy" Mercurial is,
> without substantiating it.

And the macintosh has a nicer desktop than Gnome, too. :P

> Granted, git _used_ to be more difficult, but 
> now?  No, really.</rant>

I wrote "http://kernel.org/doc/local/git-quick.html";, so I'm not speakign 
entirely from ignorance when I say that Mercurial is way the heck easier to 
set up and to use.

In mercurial, the human readable web repository viewer and the server you pull 
from are the same thing (and part of the same package).  They're different 
packages in git, set up differently, and live at arbitrarily different URLs 
such that knowing where to pull from doesn't let you know where a web 
repository viewer is (or even if there _is_ one, since it's a lot of extra 
work to set up in git but comes free in mercurial).  There's also no 
mercurial equivalent to the "git update-server-info" comand because it 
doesn't need one, and if you're behind a firewall that only allows http 
access you can pull from mercurial but not from git.  Also, since the 
mercurial repository uses apache as its server just use https:// and you get 
encryption for free, while git has to reimplement all that.  You never have 
to "pack" or "git gc" a mercurial repository.  You don't have to install a 
seperate documentation package in order for "hg help command" to work.  The 
mercurial command syntax doesn't vary wildly depending on which version you 
have installed, in git it's totally different before 1.5.0 and after...

Shall I go on?  I dunno an archive for the users at kernel.org mailing list 
but the vast majority of the traffic is "strange, subtle, and painful things 
that can go wrong with git".  (It's not a high traffic list, but still.)

That said, it's the source control system the kernel guys use, and it _is_ the 
same basic concepts as any other distributed SCM (with a horrible user 
interface).  I don't _object_ to using it, I just don't prefer it.

> The biggest obstacle to using a distributed VCS is that many people do not
> grasp, and indeed do not even care about, the concept of a distributed
> VCS.

For me, going from svn to hg was less pain than going from cvs to svn had 
been.

I like mercurial because going "hg log -v", or "hg update -r 12345" is an 
entirely local operation that doesn't have to go out on the network.  I can 
tell mercurial to spit out a tarball of any arbitrary historical version (or 
just put it in a directory directly), again without waiting for access to a 
server and hoping it's up.

You get darn spoiled by that, really quick.  (And this doesn't even count the 
maintainer-only stuff like being able to do checkins on plane flights or long 
car trips.  And said checkin taking a fraction of a second to commit, and 
_never_ having a conflict during the commit stage.)  You don't have to worry 
about new concepts until you want to use branching and merging, which I 
really don't much.

> That's perfectly fine with me, if you don't want to use a distributed
> tool, I do not want to force it down your throat.  FWIW I am happily using
> git on top of CVS, thankyouverymuch.

*shrug*  Now that the git mirror I use is updating again, I admit my 
motivation on this topic's dried up a bit. :)

> Ciao,
> Dscho

Rob
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]