From owner-freebsd-current@FreeBSD.ORG Thu Mar 6 12:45:04 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07C131065673; Thu, 6 Mar 2008 12:45:04 +0000 (UTC) (envelope-from lulf@stud.ntnu.no) Received: from bene1.itea.ntnu.no (bene1.itea.ntnu.no [IPv6:2001:700:300:3::56]) by mx1.freebsd.org (Postfix) with ESMTP id 07FBE8FC1F; Thu, 6 Mar 2008 12:45:02 +0000 (UTC) (envelope-from lulf@stud.ntnu.no) Received: from localhost (localhost [127.0.0.1]) by bene1.itea.ntnu.no (Postfix) with ESMTP id C89E116C791; Thu, 6 Mar 2008 13:45:00 +0100 (CET) Received: from carrot.studby.ntnu.no (unknown [IPv6:2001:700:300:3::185]) by bene1.itea.ntnu.no (Postfix) with ESMTP id CA27316C60F; Thu, 6 Mar 2008 13:44:59 +0100 (CET) Date: Thu, 6 Mar 2008 13:44:59 +0100 From: Ulf Lilleengen To: freebsd-current@freebsd.org Message-ID: <20080306124458.GA50277@carrot.studby.ntnu.no> Mail-Followup-To: freebsd-current@freebsd.org, freebsd-hackers@freebsd.org, mux@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.17 (2007-11-01) X-Virus-Scanned: Debian amavisd-new at bene1.itea.ntnu.no Cc: freebsd-hackers@freebsd.org Subject: Call for testers: CVSMode for csup X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "..."@carrot.studby.ntnu.no List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Mar 2008 12:45:04 -0000 Hello all, During the past few months, I've implemented CVSMode support for csup. This means one can use csup to fetch complete CVS repositories. However, first I'd like everyone who'd like to help, to try out this patch and test to find bugs and issues with it. Currently, I'm pretty sure it should behave correctly in the normal cases, but therefore needs to be tested by a wider audience. Also, there are some flaws that are noted at the bottom of this e-mail, but the important thing is to test the correctness regarding RCS. For now, I'm including the tokenizer generated by flex since the base system flex won't be good enough yet. Hopefully, it'll get updated soon. A more technical overview: The support for CVSMode is accomplished by extending the already good foundation of csup to support the commands listed in the cvsup protocol. This means that I've added support for this in the detailer (the part giving the cvsup server the client file info) and updater(the one taking orders from the server) part of csup. In addition, I've created the rcsfile-interface. The interface specifies functions to add and remove deltas, tags, attributes etc. of a RCS file. To initially read a RCS file, I've created a parser using flex as tokenizer. Since the parser and tokenizer must be reentrant (both updater and detailer uses it), a fairly new version of flex is needed. There are some known issues with this patch: - Some RCS files contains extra whitespaces due to hackery. CVSup solves this by counting them during reading. This could perhaps be solved by using a newline counter in the lexxer, but I'm not sure if this is really necessary. - Some RCSfiles such as src/share/examples/kld/firmware/fwimage/firmware.img,v differ because there are some unknown garbage I think, but this should be investigated and confirmed. - It has a quite high memory usage, and this might be due to some leaks that I've been unable to find. I'll do a much better audit of the code and run valgrind to investigate this further. - Does not support md5 of RCS stream, so it can't detect errors yet. - Statusfile file attributes might not be correct. - Some RCS parts such as newphrases (man rcsfile) is not supported yet. - Some hardcoded limits that may break it. - Things done a silly way such as sorting and comparing, which I have plans to improve later. Please consider this as a very pre-alpha patch :) Given this list, I'm not so sure unleashing this patch is so good after all :), but it's really very experimental for now. As i mentioned, the things I want to be tested right now is if it does the RCS update procedure correctly in all cases (except the points I just mentioned). I've been testing on some parts of the FreeBSD src repository (diffing the result against cvsup result), and this is a quite good testcase, but different repos is always good. The latest patches for CURRENT and RELENG_7 can be found here: http://people.freebsd.org/~lulf/patches/csup/cvsmode Also, I'll be on and off the internet during the next few weeks (in Japan until 25th of march), so I might respond a bit late. I'll come back with more improvements and new patches as soon as I can. -- Ulf Lilleengen