From nobody@FreeBSD.org  Mon Nov  5 04:23:30 2007
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 32CFA16A419
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  5 Nov 2007 04:23:30 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 282A613C48E
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  5 Nov 2007 04:23:30 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.1/8.14.1) with ESMTP id lA54NJpo092881
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 5 Nov 2007 04:23:19 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.1/8.14.1/Submit) id lA54NJHO092880;
	Mon, 5 Nov 2007 04:23:19 GMT
	(envelope-from nobody)
Message-Id: <200711050423.lA54NJHO092880@www.freebsd.org>
Date: Mon, 5 Nov 2007 04:23:19 GMT
From: YONETANI Tomokazu <qhwt+fbsd@les.ath.cx>
To: freebsd-gnats-submit@FreeBSD.org
Subject: csup is incompatible WRT handling unknown RCS keywords
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         117831
>Category:       bin
>Synopsis:       csup(1) is incompatible WRT handling unknown RCS keywords
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    mux
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 05 04:30:02 UTC 2007
>Closed-Date:    Tue Feb 03 02:00:51 UTC 2009
>Last-Modified:  Tue Feb 03 02:00:51 UTC 2009
>Originator:     YONETANI Tomokazu
>Release:        
>Organization:
>Environment:
>Description:
csup is a cvsup client program written in C and is supposed to be a drop-in replacement when used in CHECKOUT mode.  However, when it comes to checking out from a CVS repository containing commits made by cvs-1.12.
CVS developers decided to introduce a new RCS keyword(`newphrase' as in rcsfile(5)), `commitid', to assign a unique session string to files committed at the same time, sometime during cvs-1.12.  Prior cvs versions display a warning
saying that it doesn't know about the `commitid' keyword, but they otherwise work without a problem.
The cvsup server code running on cvsup servers around the world currently doesn't know about this commitid keyword, either.  When it encounters an unknown RCS keyword, either in CVS mode or CHECKOUT mode, it appends a special data to the delta command('D'), as described starting from the line 434 of doc/Protocol file in cvsup distribution (yes, that part is in the middle of 'V' command, which only applies to CVS mode, and the CHECKOUT mode counterpart is 'U' command, which begins at line 398, but it states
      D <revNum> <diffBase> <revDate> <author>
        Add a delta.  See the description under the "V" command.
so 'N' also applies to CHECKOUT mode.

The cvsup client code operating in CHECKOUT mode does not perform any operation when it sees this 'N'(or 'n'), so it has no problem updating from a CVS repository containing `commitid' keywords.
csup, on the other hand, only supports 'L', 'S', or 'T' for 'D' command, and it aborts operation.  So you can checkout from a CVS repository created with cvs-1.12.x, but you can't update your work directory after someone has committed to it using cvs-1.12.x.
>How-To-Repeat:
you may not see the symptom unless the delta contains newphrase, so it probably does not stop at the first checkout.
1. set up a cvsup collection; you can use either cvs-1.11 or cvs-1.12 to create the CVS repository
2. checkout the repository using csup
3. commit something to the repository using cvs-1.12
4. update the work directory using csup again
>Fix:
There could be a few fixes to this problem
  (easiest-but-probably-less correct one first):

1. Document that csup doesn't (won't?) support any CVS repositories unknown to cvsup servers.
2. Apply a patch like this to csup
  http://les.ath.cx/FreeBSD/csup-commitid.diff

3. Convince either or both authors of cvsup and csup to officially support commitid keyword; I can't do this by myself as I received no response from any of them for more than a year.

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->mux 
Responsible-Changed-By: remko 
Responsible-Changed-When: Mon Nov 5 17:47:25 UTC 2007 
Responsible-Changed-Why:  
Over to maintainer. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=117831 

From: YONETANI Tomokazu <qhwt+fbsd@les.ath.cx>
To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Cc:  
Subject: Re: bin/117831: csup is incompatible WRT handling unknown RCS
	keywords
Date: Tue, 3 Feb 2009 10:36:35 +0900

 Hi.
 
 On Mon, Nov 05, 2007 at 04:30:02AM +0000, FreeBSD-gnats-submit@FreeBSD.org wrote:
 > http://www.freebsd.org/cgi/query-pr.cgi?pr=117831
 > 
 > >Category:       bin
 > >Responsible:    freebsd-bugs
 > >Synopsis:       csup is incompatible WRT handling unknown RCS keywords
 > >Arrival-Date:   Mon Nov 05 04:30:02 UTC 2007
 
 This one can be closed.
 Thank you for your time and attention.
State-Changed-From-To: open->closed 
State-Changed-By: linimon 
State-Changed-When: Tue Feb 3 02:00:38 UTC 2009 
State-Changed-Why:  
Closed at submitter's request. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=117831 
>Unformatted:
