From owner-freebsd-questions@freebsd.org Thu Sep 29 03:38:30 2016 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5281ABE2A6D for ; Thu, 29 Sep 2016 03:38:30 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) Received: from holgerdanske.com (holgerdanske.com [184.105.128.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.he.net", Issuer "GeoTrust SSL CA - G4" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 453451AE for ; Thu, 29 Sep 2016 03:38:30 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) Received: from ::ffff:99.100.19.101 ([99.100.19.101]) by holgerdanske.com for ; Wed, 28 Sep 2016 20:38:19 -0700 Subject: Re: cvs To: freebsd-questions@freebsd.org References: <6470061F-3127-4CD8-BB14-EB46D46B0BF1@mail.sermon-archive.info> From: David Christensen X-Enigmail-Draft-Status: N1110 Message-ID: <23c8bfcb-5112-accb-6607-3448104d5a0f@holgerdanske.com> Date: Wed, 28 Sep 2016 20:38:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.2.0 MIME-Version: 1.0 In-Reply-To: <6470061F-3127-4CD8-BB14-EB46D46B0BF1@mail.sermon-archive.info> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Sep 2016 03:38:30 -0000 On 09/28/2016 06:06 PM, Doug Hardie wrote: > I am using cvs for a number of projects and have been digging through the documentation, but not figuring out how to do what I need. There are multiple files in each project. All are entered into cvs and are updated fairly often. Some of the revision numbers are over 100. All I have done is commits to the files so far. > > I need to be able to identify the files in a specific version. For example on some date, I need to say all the current files belong to version x. Later another version x+1 and so forth. I also need to be able to pull out all the file from version x. I suspect there is an easy way to do this, but it has escaped me so far. CVS manages revision numbers on individual files. Some version control systems manage version numbers on sets of files (Git, Mercurial?). Still others number both individual files and sets of files (MKS SI). But, CVS provides "tags" for working with sets of files: info cvs cvs --help tag You can see the tags on a particular file with: cvs log FILENAME When I want to create a release of one of my projects, say revision 1.108, I check in all the files and then run: cvs tag -c r1_108 This applies the tag "r1_108" to the current revision of the files in the working set. (The -c option ensures that they are checked in, to reduce operator errors.) If I later want to check out all the files from a particular release: cvs co -r r1_108 (Note that CVS will mark the files as "sticky", which adds complexities I avoid by not editing them.) CVS also has the ability to check out files by date, but I have never tried that. If your files don't have tags, perhaps you can check them out by date and then add tags. Be sure to back up your CVS repository before mucking about. David p.s. I learned CVS from an earlier version of this book. The current edition (3 e.) is available as a PDF download: http://cvsbook.red-bean.com/