From owner-freebsd-hackers@FreeBSD.ORG Sat Oct 1 20:34:34 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0B8E916A41F for ; Sat, 1 Oct 2005 20:34:34 +0000 (GMT) (envelope-from bakul@bitblocks.com) Received: from gate.bitblocks.com (bitblocks.com [209.204.185.216]) by mx1.FreeBSD.org (Postfix) with ESMTP id 966AF43D49 for ; Sat, 1 Oct 2005 20:34:33 +0000 (GMT) (envelope-from bakul@bitblocks.com) Received: from bitblocks.com (localhost [127.0.0.1]) by gate.bitblocks.com (8.13.4/8.13.1) with ESMTP id j91KYWPQ064132 for ; Sat, 1 Oct 2005 13:34:33 -0700 (PDT) (envelope-from bakul@bitblocks.com) Message-Id: <200510012034.j91KYWPQ064132@gate.bitblocks.com> To: freebsd-hackers@freebsd.org In-reply-to: Your message of "Fri, 30 Sep 2005 19:01:05 +0400." <20050930150105.GA55158@comp.chem.msu.su> Date: Sat, 01 Oct 2005 13:34:32 -0700 From: Bakul Shah Subject: Re: A smarter mergemaster X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Oct 2005 20:34:34 -0000 Here is an idea for the mergemaster hackers' consideration! By keeping /etc files in a source repository one can archive and document all local changes. This is useful for some of the same reasons for which we keep sources in a repo: recovery from mistakes, reuse of old code, checking who did what, more than one person can make changes, tracking history, debugging etc. If mergemaster handled or worked with a local cvs /etc repo that'd be very nice! The idea is to make changes and test them in a temp workspace and commit them *only if they do the right thing*! I envision a workflow something like this (using make for illustration purposes): cd make etc-diff # ensure your workspace reflects what is in /etc make import # import the latest /usr/src/etc into etc workspace make diff # look over the changes make install # install to /etc; do mkdb etc. Finally: make commit # commit changes to local repo OR make undo # if things didn't quite work, restore /etc to old state. Roughly, the current mergemaster does the work of make import, make diff, repairs and install. Comments? -- bakul