qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Rob Landley <rob@landley.net>
To: qemu-devel@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>,
	Felipe Contreras <felipe.contreras@gmail.com>,
	Paul Brook <paul@codesourcery.com>
Subject: Re: Git/SVN/CVS? was Re: [Qemu-devel] What does code_copy_enabled do?
Date: Mon, 11 Feb 2008 15:00:44 -0600	[thread overview]
Message-ID: <200802111500.45095.rob@landley.net> (raw)
In-Reply-To: <alpine.LSU.1.00.0802091649230.11591@racer.site>

On Saturday 09 February 2008 10:49:49 Johannes Schindelin wrote:
> Hi,
>
> On Sat, 9 Feb 2008, Felipe Contreras wrote:
> > Right now I can't use qemu because a bug introduced in the last months
> > and with git-bisect I probably would be able to fix it myself.
>
> Just clone git://repo.or.cz/qemu.git, then.

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.)

The thing is, git and mercurial are roughly equivalent, they're both 
distributed source control systems and you can losslessly convert from one to 
the other and back again, because they have all the same metadata.  (See 
http://kernel.org/hg/linux-2.6 as an example of a mercurial mirror of a git 
repository.)

But the difference between centralized source control and distributed source 
control is huge.  The distributed ones store more information.  This means 
you can convert losslessly convert from svn->hg, but if you convert from 
hg->svn you lose information.  (So if you convert from hg->svn and then back 
from svn->hg, you have a different mercurial repository, and pulling from the 
original would be a bad idea because it would think it had lots of duplicate 
changes.)

And of course CVS isn't even a full fledged centralized repository, it's an 
ancient holdover from the 1980's that doesn't even have the concept 
of "changesets".  (In cvs, changes are tracked in individual files.  Changes 
that touch multiple files at the same time have to be collated after the fact 
by comparing timestamps and hoping the descriptions match up.  This is a 
brittle heuristic at best; CVS hasn't got this _concept_.  Doing a binary 
search for the change that introduced a bug is amazingly painful with CVS, 
and even proposing tracking renames violates the design assumptions.  Even 
patch knows how to touch more than one file at a time; CVS does not.)

It is possible to use a distributed source control system as if it were a 
centralized source control system.  Just accept all changes as patches, never 
pulling directly from any other trees.  And thus you can hold off on learning 
new distributed source control concepts indefinitely.

> Hth,
> Dscho

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

  parent reply	other threads:[~2008-02-11 21:00 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-09  6:48 Git/SVN/CVS? was Re: [Qemu-devel] What does code_copy_enabled do? Blue Swirl
2008-02-09 12:45 ` Johannes Schindelin
2008-02-09 14:10   ` Blue Swirl
2008-02-09 14:22     ` Johannes Schindelin
2008-02-09 15:20   ` Felipe Contreras
2008-02-09 16:49     ` Johannes Schindelin
2008-02-08  2:42       ` Rob Landley
2008-02-08  3:52         ` Paul Brook
2008-02-08 20:51           ` Rob Landley
2008-02-11 15:50             ` Ian Jackson
2008-02-11 16:10               ` Johannes Schindelin
2008-02-11 16:12                 ` Ian Jackson
2008-02-11 15:52             ` Ian Jackson
2008-02-11 19:30               ` Felipe Contreras
2008-02-11 20:38                 ` Johannes Schindelin
2008-02-11 21:19                   ` Rob Landley
2008-02-11 21:19                   ` Felipe Contreras
2008-02-12  2:32               ` Paul Brook
2008-02-12  3:46                 ` M. Warner Losh
2008-02-12 11:30                   ` Julian Seward
2008-02-12 11:15                 ` Johannes Schindelin
2008-02-12 12:06                   ` Andreas Färber
2008-02-12 11:57         ` Ian Jackson
2008-02-12 12:51           ` Johannes Schindelin
2008-02-12 12:59             ` Ian Jackson
2008-02-12 13:37               ` Johannes Schindelin
2008-02-12 13:52                 ` Ian Jackson
2008-02-13  8:22           ` Rob Landley
2008-02-13  9:18             ` Felipe Contreras
2008-02-11 21:00       ` Rob Landley [this message]
2008-02-11 21:28         ` Git/SVN/CVS? was " Johannes Schindelin
2008-02-12  2:34           ` Rob Landley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200802111500.45095.rob@landley.net \
    --to=rob@landley.net \
    --cc=blauwirbel@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).