From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2834 invoked by alias); 1 Jan 2010 16:06:43 -0000 Received: (qmail 2824 invoked by uid 22791); 1 Jan 2010 16:06:42 -0000 X-SWARE-Spam-Status: No, hits=1.0 required=5.0 tests=AWL,BAYES_50,FH_DATE_PAST_20XX X-Spam-Check-By: sourceware.org Received: from smurf.noris.de (HELO smurf.intern.smurf.noris.de) (192.109.102.42) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Jan 2010 16:06:39 +0000 Received: from kiste.intern.smurf.noris.de ([10.3.1.2]) by smurf.intern.smurf.noris.de with esmtp (Exim 4.69) (envelope-from ) id 1NQk0U-0001TG-Qr; Fri, 01 Jan 2010 17:05:45 +0100 Subject: Re: time to be serious about dropping CVS From: Matthias Urlichs To: Mark Kettenis Cc: brobecker@adacore.com, gdb@sourceware.org, binutils@sources.redhat.com In-Reply-To: <201001011025.o01APi7b017223@glazunov.sibelius.xs4all.nl> References: <20100101080137.GP2788@adacore.com> <201001011025.o01APi7b017223@glazunov.sibelius.xs4all.nl> Content-Type: text/plain; charset="UTF-8" Date: Fri, 01 Jan 2010 16:06:00 -0000 Message-ID: <1262361940.2587.2525.camel@kiste> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Smurf-Spam-Score: 0.6 (/) X-Smurf-Whitelist: +relay_from_hosts Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-01/txt/msg00015.txt.bz2 On Fri, 2010-01-01 at 11:25 +0100, Mark Kettenis wrote: > There's no equivalent of a quick "cvs update" of a checked out > tree that contains modifications. That's a bad habit from CVS/SVN usage which you should train yourself out of. It's the cause of many a "my half-tested changes don't work at all after the cvs update, how the hell do I figure out what went wrong" trap I've fallen into before switching to git. No longer: a script which runs a git_bisect/apply_my_change/test/repeat-until-culprit-is-found is so cheap that I write it from scratch every time I need it. This, by the way, is just one command where git _really_ shines. Consider: You just updated from GCC 4.3 to 4.4. One of your tests shows a regression. You want to figure out which of the 4527 patches and/or 293 merges which went into 4.4 caused it, so as to fix the regression and/or render a qualified bug report and/or figure out how to circumvent the problem. With "git bisect", this requires less than 15 compile/test cycles (ceil(log2(4527+293))) and can be fully automated. (Yes, the numbers of patches and merges are made up.) > And I can't get myself to commit half-finished or half-tested changes > to a local repo. Somebody else already mentioned "git stash". Writing a small script which does a stash/merge/stash_pop, or a commit/merge/rebase, is trivial. Problem solved. SVN is _not_ acceptable for anybody who ever tried to do nontrivial work when disconnected, e.g. on an airplane. Among other problems. Please select a distributed VCS. SVN is not.