Received: from spf5.us4.outblaze.com (spf5.us4.outblaze.com [205.158.62.27]) by sdf.lonestar.org (8.12.10/8.12.10) with ESMTP id i9SHPLuS028113 for ; Thu, 28 Oct 2004 17:25:21 GMT Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by spf5.us4.outblaze.com (Postfix) with ESMTP id 053E176EAB for ; Thu, 28 Oct 2004 17:25:22 +0000 (GMT) Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CNE9O-0002U6-85 for migo@homemail.com; Thu, 28 Oct 2004 13:33:26 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CNE91-0002TX-J7 for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 13:33:03 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CNE90-0002TA-Ko for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 13:33:03 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CNE90-0002Ss-HA for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 13:33:02 -0400 Received: from [205.149.2.136] (helo=xl2.seyza.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1CNE11-0004JO-El for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 13:24:49 -0400 Received: from xl2.seyza.com (localhost.seyza.com [127.0.0.1]) by xl2.seyza.com (8.12.10/8.12.10) with ESMTP id i9SHRSIb084844; Thu, 28 Oct 2004 10:27:29 -0700 (PDT) (envelope-from lord@xl2.seyza.com) Received: (from lord@localhost) by xl2.seyza.com (8.12.10/8.12.10/Submit) id i9SHRS8v084841; Thu, 28 Oct 2004 10:27:28 -0700 (PDT) (envelope-from lord) Date: Thu, 28 Oct 2004 10:27:28 -0700 (PDT) Message-Id: <200410281727.i9SHRS8v084841@xl2.seyza.com> From: Thomas Lord To: abentley@panoramicfeedback.com In-reply-to: <41803AEC.1050209@panoramicfeedback.com> (message from Aaron Bentley on Wed, 27 Oct 2004 20:18:52 -0400) Subject: Re: [Gnu-arch-users] Potential flaw in patch-log pruning in proposal References: <20041025210724.GA19744@merconline.com> <200410272144.i9RLiYnd074868@xl2.seyza.com> <41803AEC.1050209@panoramicfeedback.com> Cc: gnu-arch-users@gnu.org X-BeenThere: gnu-arch-users@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: a discussion list for all things arch-ish List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: gnu-arch-users-bounces+migo=homemail.com@gnu.org Errors-To: gnu-arch-users-bounces+migo=homemail.com@gnu.org Status: RO Content-Length: 3223 Lines: 91 > From: Aaron Bentley > One of the features of Arch I really like is the history-sensitive > merging. This process breaks history-sensitive merge commands. That is a complete misapprehension. Rather, this process relies on history-sensitive merges that aren't yet built-in, but which are minor variations on merge commands which are built in. Adding a ./=merges file would be a step towards automating this (rather trivial) style of merging. Suppose (just as a straw-man, for the sake of argument) we have three file: =merges The list of submission versions that have been merged =pending The list of submission versions that are "in the queue" =cherries (not in the mainline, only in your branches from the mainline) The subset of =pending that you like to keep in your tree The set difference of =cherries and =merges gives you a list of versions to star-merge into your tree if you want to be cherry-picking ahead of mainline. Let's suppose that I have a mainline, M, and maintain =merges and =pending. You have an experimental branch X. X is maintained by: 1. Periodically star-merging from M 2. Periodically star-merging from each version in the set difference of =cherries and =merges 3. Arbitrary, other, X-specific changes You can star-merge from M freely. That's the only thing that should ever change '=merges' (or we can make '=merges.$VERSION') in your tree. You can star-merge from any version in =cherries freely, so long as that version is not also named in =merges: so, perhaps a new star-merge option for that. Your other changes can be pretty free form. You might want to take advantage of the log pruning of mainline so you can log-prune your version X, too. That's a little bit tricky because there's no particular telling how a given patch log entry wound up in X: whether it came from cherry-picking pending submission versions (and hence can be pruned when those submission versions are merged into mainline) or whether it came from the "free form" merging you're also able to do into X. So, I think you have to pick your community. May as well make it yet another file that lives only in your version: ./=community A list of log version, branche, categorie, and archive regexps of parts of the patch log tree to /not/ prune and you can "inherit" the mainline M's log pruning by wiping your X tree patch-log of everything not in '=community' and then 'sync-tree'ing with X. No intentionally-recorded history is lost in this set-up: your X version is perfectly fine. At the same time, patch-tree log sizes in the mainline can be kept to a bounded size. (The problem of unbounded growth has then shifted from patch-log size to the size of the '=pending' file but that's both easy to solve /and/ not even worth implementing a solution for for years and years (witness the non-necessity of (conventional) ChangeLog pruning: rotation: yes; pruning: not so much.). -t _______________________________________________ Gnu-arch-users mailing list Gnu-arch-users@gnu.org http://lists.gnu.org/mailman/listinfo/gnu-arch-users GNU arch home page: http://savannah.gnu.org/projects/gnu-arch/