[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 11:44:21 -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