From owner-freebsd-chat Thu Dec 13 11:18:47 2001 Delivered-To: freebsd-chat@freebsd.org Received: from enigma.trueimpact.net (enigma.trueimpact.net [209.82.45.201]) by hub.freebsd.org (Postfix) with ESMTP id 9B31937B405 for ; Thu, 13 Dec 2001 11:18:43 -0800 (PST) Received: from spirit.jaded.net (unknown [209.82.45.200]) by enigma.trueimpact.net (Postfix) with ESMTP id 9544866B0D for ; Thu, 13 Dec 2001 14:18:37 -0500 (EST) Received: (from dan@localhost) by spirit.jaded.net (8.11.6/8.11.6) id fBDJIx202225 for chat@freebsd.org; Thu, 13 Dec 2001 14:18:59 -0500 (EST) (envelope-from dan) Date: Thu, 13 Dec 2001 14:18:59 -0500 From: Dan Moschuk To: chat@freebsd.org Subject: CVS organization ideas? Message-ID: <20011213141859.A1665@spirit.jaded.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Greetings all, I have been putting off reorganizing the CVS tree here at the dayjob because I cannot seem to decide on a decent way to do it. I'm hoping that people here will have some ideas. Currently, there are "projects" and "programs". A program is an individual module that does a certain task. Projects are a collection of programs, scripts and documentation. The build process for this is a royal PITA, as it involves checking out all the programs you need and building them separately. No tags or branches are being used at all here. The way I'm leaning towards is to make the project directory contain only documentation, scripts, and a Big Global Project Makefile. In CVS, I will use the modules file to include (using the '&' character) all the programs that this project uses. The Big Global Project Makefile will then build everything. This should work fine, however there are a couple of caveats that toss a monkey wrench into the works. I would like to tag and branch at the project level, and some programs are shared between multiple projects. These shared (or standalone) programs have their own build process as well, and I'd like to keep it that independent of the Big Global Project Makefile. I'd also like standalone/shared modules to have their own tags and branches, so as not to have projects tag/branches pollute that. The other way is to make the root directories in the tree only standalone/shared programs and projects. Project specific programs will go under that project's directory instead of the root. The CVSROOT/modules file will still include the shared stuff upon checkout as to be included in the build process. The kicker is I'm not sure on the best way of making sure that different versions of projects get the right versions of shared programs without tagging the module with the same tag as the project gets. Bleh, does anyone have any ideas on this whole mess? Or even a better way to organize it? :) Cheers, -Dan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message