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 i9SJhvWg027911 for ; Thu, 28 Oct 2004 19:43:57 GMT Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by spf5.us4.outblaze.com (Postfix) with ESMTP id 8E0FA76DB9 for ; Thu, 28 Oct 2004 19:43:58 +0000 (GMT) Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CNGJW-0002Vg-9w for migo@homemail.com; Thu, 28 Oct 2004 15:52:02 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CNGJ1-0002U0-5X for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 15:51:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CNGJ0-0002TV-88 for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 15:51:30 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CNGJ0-0002T7-3J for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 15:51:30 -0400 Received: from [66.216.124.41] (helo=server4.panoramicfeedback.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1CNGAK-0002Bf-Qb for gnu-arch-users@gnu.org; Thu, 28 Oct 2004 15:42:33 -0400 Received: from panoramicfeedback.com (server4.panoramicfeedback.com [66.216.124.41]) by server4.panoramicfeedback.com (8.12.3/8.12.3/Debian-6.6) with ESMTP id i9SJgMil006586; Thu, 28 Oct 2004 15:42:22 -0400 Message-ID: <41814B9E.5040601@panoramicfeedback.com> Date: Thu, 28 Oct 2004 15:42:22 -0400 From: Aaron Bentley User-Agent: Mozilla Thunderbird 0.5 (X11/20040309) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Thomas Lord 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> <200410281727.i9SHRS8v084841@xl2.seyza.com> In-Reply-To: <200410281727.i9SHRS8v084841@xl2.seyza.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Panometrics-MailScanner: Found to be clean 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: 4560 Lines: 120 Thomas Lord wrote: > > 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. No, that is totally accurate. The process that Matthew Dempsky used to commit patch-7 breaks all conceivable history-based merge commands, and requires a human to determine its origins. Now, if we assume the =merges idea is implemented, it may or may not be possible to fix the commands, but it breaks the commands we have right now, today. > 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. Please build in the new variations before removing support for what we already have. Please don't implement a draft proposal before we've finished discussing it. Or is it no longer a draft? Either way, it never had =merges. > 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 My current X is not maintained using star-merge, because lord@emf.net--2004/tla--devo--1.3 occasionally cherry-picked changes from me. Even if, in the future, I submitted versions, those versions would contain changes that originated in X. So I do not believe this is a useful scenario to explore. > 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. I cannot star-merge from M freely, because I can't detect when M merges changes that originated in X. Actually, I can, but to accomplish that, I have to keep a record of all the submit versions that were derived from X in X. And then I need to determine whether a changeset adds one of those to X before applying it. Removing the patchlogs doesn't just remove patchlog files, it also removes their entries from the new-patches header. So there is no way to determine whether a changeset adds patches that have already been merged without downloading the changesets. > No intentionally-recorded history is lost in this set-up: your X > version is perfectly fine. It was intentional when I committed those logs. There's all kinds of useful data in the patchlogs. For example, want to know who and what added the following from line from pfs-sftp.c? Oh come on, humour me. safe_printfmt(2, "Error creating directory %s in path %s: File exists\n", path, pfs->cwd); $fai revisions --modified pfs-sftp.c:1127 -scD lord@emf.net--2004/tla--devo--1.2--patch-56 Tom Lord 2004-01-11 19:45:51 EST nicer error messages at pfs layer (abently) We can even trace into the new-patches header. Fai did that, but was deceived, because it looks for exact matches, and you changed some of the formatting before committing. > At the same time, patch-tree log sizes in the mainline can be kept to a bounded size. I believe we can strike a balance between unbounded growth and no historical data; I think the patchlog *contents* don't belong in the tree, but an index of merged patches *does*. Try this: for version in $(tla log-versions); do tla logs -f $version; done The output for lord@emf.net--2004/tla--devo--1.3--patch-28 is a mere 14k. We could go for years with that kind of accumulation. And if we can use patchlevels instead of fq-revisions, that drops to about 2.3k. All we have to do is bump the working tree format and modify the functions that interact with tree logs. We can cache the commonly-requested logs, or maybe keep some logs (e.g. the tree-version logs) in the tree and use the library/archive logs for the rest. That way, no commands would break, and we'd avoid the patchlog explosion. Keep the list sorted, and access time cannot be a serious concern. If that were in place now, you wouldn't be thinking about pruning, right? Can you hold off until we do get something like that in place? Aaron -- Aaron Bentley Director of Technology Panometrics, Inc. _______________________________________________ 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/