bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

client protocol not responding to repeated checkout request


From: Alexander Taler
Subject: client protocol not responding to repeated checkout request
Date: Sun, 08 Jun 2003 10:33:32 -0400

Hi All,

I'm working on a Perl library to provide access to CVS via the
cvsclient protocol.  I'm now optimizing it to use the same
connection to the cvs server for many requests.  As warned in the
docs, I've discovered a case where multiple commands don't work
as expected.  If I checkout (or update) a specific revision of a
file twice, it doesn't return the contents the second time.  Is
this a bug?

I am using cvs 1.11.5, on Debian (testing) GNU/Linux 2.4.20.

Here's the a script to reproduce the problem.

####################
# CVSROOT must be a local directory containing a repository
CVSROOT=/tmp/cvs-repo-ajfw3jlkawjl3j

cvs -d $CVSROOT init

cvs server <<EOT
valid-requests
Valid-responses Merged Clear-sticky E Valid-requests Remove-entry Mod-time 
Updated ok M Checked-in Set-sticky error Mode New-entry Removed
Root $CVSROOT
UseUnchanged
Argument -r1.1
Argument CVSROOT/notify
Directory CVSROOT
$CVSROOT/CVSROOT
Directory .
$CVSROOT
co
Argument -r1.1
Argument CVSROOT/notify
Directory CVSROOT
$CVSROOT/CVSROOT
Directory .
$CVSROOT
co
EOT

####################

Which generates the following output from CVS:

Valid-requests Root Valid-responses valid-requests Repository Directory 
Max-dotdot Static-directory Sticky Checkin-prog Update-prog Entry Kopt 
Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Questionable 
Case Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set 
expand-modules ci co update diff log rlog add remove update-patches 
gzip-file-contents status rdiff tag rtag import admin export history release 
watch-on watch-off watch-add watch-remove watchers editors annotate rannotate 
noop version
ok
Mod-time 8 Jun 2003 14:26:12 -0000
M U CVSROOT/notify
Updated CVSROOT/
/tmp/cvs-repo-ajfw3jlkawjl3j/CVSROOT/notify
/notify/1.1///T1.1
u=rw,g=rw,o=rw
564
# The "notify" file controls where notifications from watches set by
# "cvs watch add" or "cvs edit" are sent.  The first entry on a line is
# a regular expression which is tested against the directory that the
# change is being made to, relative to the $CVSROOT.  If it matches,
# then the remainder of the line is a filter program that should contain
# one occurrence of %s for the user to notify, and information on its
# standard input.
#
# "ALL" or "DEFAULT" can be used in place of the regular expression.
#
# For example:
#ALL mail -s "CVS notification" %s
ok
ok

Observe that the contents of the notify file are only returned
once, and the to "ok"s at the bottom, meaning that the last co
request's only response was ok.  I expect the file contents to be
returned again.

Alex

-- 
http://libcvs.cvshome.org/    Access CVS through a library. 
PGP:  ID: 0x23DC453B  FPR: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B
"Fido Bakin is my name."
       -- The Two Towers, Malaysian edition




reply via email to

[Prev in Thread] Current Thread [Next in Thread]