From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12443 invoked by alias); 27 Oct 2007 06:29:22 -0000 Received: (qmail 12427 invoked by uid 22791); 27 Oct 2007 06:29:20 -0000 X-Spam-Check-By: sourceware.org Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 27 Oct 2007 06:29:15 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1IlfAP-0005vq-Qv for gdb-patches@sources.redhat.com; Sat, 27 Oct 2007 06:29:05 +0000 Received: from 77.246.241.246 ([77.246.241.246]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 27 Oct 2007 06:29:05 +0000 Received: from ghost by 77.246.241.246 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 27 Oct 2007 06:29:05 +0000 To: gdb-patches@sources.redhat.com From: Vladimir Prus Subject: Re: Managing long patch series Date: Sat, 27 Oct 2007 08:11:00 -0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.10.4 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-10/txt/msg00735.txt.bz2 Jim Blandy wrote: > > Ulrich, I'm curious what techniques you use to manage these long > strings of patches. Specifically, I was wondering: > > - I'm usually working from a fully-patched tree, and then breaking it > up into digestible pieces for submission. If you are working this > way as well, do you have a nice way to ensure the decomposed patch > series remains equivalent to your fully-patched tree? > > - Often I find I need to revise an earlier patch in the series, but > that chance may affect later patches. Do you have a nice way to > handle this? > > Or is it all just "blood, sweat, and tears"? In the software world, > that approach usually results in "mistakes", but you and your fellow > IBM GDB hackers seem to do well. > > I've tried using quilt, but if one doesn't keep very careful track of > what's going on things can get very tangled. The Emacs mode helped > somewhat, but had other flaws, so I set it aside. > > I've been tempted to try using Mercurial for this. I was using SVK for that. I have //patches/patch1/ ... //patches/patchN then if I modify patchX I use svk smerge to update all later patches. When mainline changes, I smerge from mainline mirrors to patch1 and then smerge between (1->2, 2->3, N-1->N). The only gotcha I found is that you should always apply mainline changes to the first patch and then propagate it via the chain. If you try to apply mainline changes to a patch in the middle, SVK mergeinfo representation may fall appart, and given you random conflicts in fugure. - Volodya