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