Date: Thu, 31 Jan 2002 09:55:02 -0700 From: Nate Williams <nate@yogotech.com> To: Sheldon Hearn <sheldonh@starjuice.net> Cc: Terry Lambert <tlambert2@mindspring.com>, arch@FreeBSD.ORG Subject: Re: Adding support for a global src tree serial number Message-ID: <15449.30438.698921.182380@caddis.yogotech.com> In-Reply-To: <80628.1012484102@axl.seasidesoftware.co.za> References: <3C5944A4.4927F812@mindspring.com> <80628.1012484102@axl.seasidesoftware.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
FWIW, this has been gone over many times in the past. We even had a workable solution, but unfortunately Richard W. (the originator of said feature request) refused to acknowledge the issues and propose a solution that would satisfy all problems. Some of the issues are: 1) A single static file is not adequate, becase we have multiple active branches. Therefore, each branch needs it's own file, and that file must only exist on that branch. 2) If a new branch is created, the system must recognize the new branch, and auto-create a new serial file for that branch. (Otherwise, it will be forgotten.) This is especially true with the new 'release product' branches. 3) That file must change at some frequency often-enough to be of use. Daily would probably be Ok, but more fine-grained would be better. 4) The file must exist in the /usr/src tree (and not in the CVS tree), since a large number of consumers do *NOT* grab the source tree, but still have the need to track the tree's age/history. (This implies that it must be some sort of RCS file.) 5) The file must not grow w/out bounds (which means that we'd have to play games if we used an RCS file above to keep things happy, and make sure that CVS/CVSup don't get all bent out of shape.) 6) The file must allow itself to be easily mirrored by CVSup, such that *all* consumers of FreeBSD who access the source tree can easily mirror the file. (Similar to 5) 7) The file must be in a format that can be queried by a tool, so that the user can easily identify the lineage of his/her source tree. Possibly create a new 'srcid(8)' or somesuch that can read the format of the file. The hardest problem are related to multiple branches and mirrored repositories. If we had a single repository and a single branch, the problem would be trivial. Unfortunately, we don't. The only solution we could come up with was a 'fake' RCS file that was hand-edited to increase the version # on a regular basis, and that a new 'branch' was added to this file everytime a new 'branch' was added to the tree. This means that the file would grow, but it would only grow as fast as we add branches. This isn't too bad. However, the hand-editing of the file, as well as auto-creation of new branches was a sticking point. I'm sure someone with lots of free time on their hands could probably implement something in the CVSROOT scripts to do this. At that point, we needed to verify that CVS/CVSup wouldn't have a cow. I think I did a quickie test, and any recent version CVS was fine with things (CVS 1.9 or later). I didn't check what CVSup would do with it though. Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15449.30438.698921.182380>