From owner-freebsd-hackers Tue Jun 25 9:38: 4 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from kali.avantgo.com (shadow.avantgo.com [64.157.226.66]) by hub.freebsd.org (Postfix) with ESMTP id 25F2437B400 for ; Tue, 25 Jun 2002 09:37:55 -0700 (PDT) Received: from river.avantgo.com ([10.11.30.114]) by kali.avantgo.com with Microsoft SMTPSVC(5.0.2195.3779); Tue, 25 Jun 2002 09:37:49 -0700 Date: Tue, 25 Jun 2002 09:37:49 -0700 (PDT) From: Scott Hess To: Makoto Matsushita Cc: hackers@freebsd.org Subject: Re: cvs(1) bug? with cvs update -rX -DY In-Reply-To: <20020625132020U.matusita@jp.FreeBSD.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-OriginalArrivalTime: 25 Jun 2002 16:37:49.0887 (UTC) FILETIME=[A4EA84F0:01C21C66] Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Tue, 25 Jun 2002, Makoto Matsushita wrote: > I found a strange behavior of cvs (see sample session below). > > Checking out the source codes seems OK, but when I update the codes with > -r and -D options, source codes are disappeared. cvs update with -r > option only is OK for me. > > Is it a bug, or just my misunderstandings of cvs behavior? I've noticed this, and it's annoying. If you do 'cvs update -r TAG -r TAG', you get updated with the changes between the two tags. If you do 'cvs update -D DATE -D DATE', you get the changes between the two dates on the trunk. 'cvs update -r TAG -D DATE' gives you the changes between the given TAG and the given DATE on the trunk, which is pretty bad if TAG is a branch tag. This also applies to diff. rtag has a similar issue, where you can't lay down a tag for a given date on a branch - you can tag by tag or by date, not by both. To accomplish that, you have to check things out by tag and date (which works fine), and tag the result. [I only mention it because if you could rtag by tag+date, then there's an easy workaround for the update and diff issue.] You could simply pop up a couple directories and checkout the given tag and date over your existing checkout. CVS is smart enough to notice that you've already got something checked out, and it will just update things. You also might be able to work around it by using -j, which allows TAG:DATE. Something like 'cvs update -j TAG:OLDDATE -j TAG:TARGETDATE' (OLDDATE is the date you used when you originally checked the project out). It would be great if -r allowed TAG:DATE, scott To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message