RE: GIT and CVS

Li, Rongsheng
2011-10-14T14:09:16Z

Anyone remember how to unbscribe this ?

Thanks

Ken

-----Original Message-----
From: gdb-owner@sourceware.org [mailto:gdb-owner@sourceware.org] On Behalf Of Eli Zaretskii
Sent: Friday, October 14, 2011 3:56 AM
To: Mark Kettenis
Cc: pmuldoon@redhat.com; gdb@sourceware.org
Subject: Re: GIT and CVS

> Date: Fri, 14 Oct 2011 12:22:53 +0200 (CEST)
> From: Mark Kettenis <mark.kettenis@xs4all.nl>
> CC: pmuldoon@redhat.com, gdb@sourceware.org
>
> $ cvs update
> (make some changes)
> ...
> (come back a couple of days later)
> $ cvs update
> (merge conflicts, make some more changes) ...
> $ cvs update
> (test changes, write changelog, send diff for review) ...
> $ cvs update
> (test changes again, fixup changelog)
> $ cvs commit
> [...]
> How does bzr compare here? Is it close enough to CVS that there is a
> 1:1 mapping of commands with perhaps an additional command to "push"
> changes upstream?

Yes. With bzr, you can "bind" your local branch to the upstream repository, which then makes the workflow in that branch very similar to what you have in CVS. E.g., your workflow above will be literally the same, except that "cvs" should be replaced with "bzr" (bzr has an "update" command, which in a bound branch behaves exactly like "cvs up"), and merge conflicts are extremely rare, because bzr is much smarter about merges (as are git and Mercurial). There isn't even the need to use "bzr push", because in a bound branch "bzr commit" will automatically commit locally and push upstream within the same transaction.

You don't need to commit unfinished work, because "bzr up" in a bound branch automatically merges the changes from upstream with your local changes.

So you retain your CVS-like workflow, and in addition get all the benefits of a dVCS: cheap branching, smart merges, possibility of local commits (if you are off line), possibility of temporarily "shelving" changes aside and returning to them later, etc. But you use all these beneficial features if you want to, you aren't forced to do it.

Bzr on GNU/Linux is slower than git (any VCS is slower than git on GNU/Linux), but I find it fast enough to not be an annoyance in day-to-day work.