[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: client protocol not responding to repeated checkout request
From: |
Alexander Taler |
Subject: |
Re: client protocol not responding to repeated checkout request |
Date: |
Sun, 08 Jun 2003 16:19:26 -0400 |
>>>>> "Larry" == Larry Jones <lawrence.jones@eds.com> writes:
Larry> Alexander Taler writes:
>>
>> 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?
Larry> No, it's expected behavior. Once you've checked the file out (or
Larry> updated it), you already have the correct revision of the file, so
Larry> doing the same command a second time doesn't do anything. Exactly the
Larry> same thing happens if you send the commands using separate
Larry> connections.
It's not quite the same if I send the commands using separate
connections. I'm not sending any Entry, Modified, Is-modified,
Unchanged or Questionable requests, so the server has no idea
what my local state is. I guess what this means is that the
server detects that there is no change from the last
update/checkout that it gave me, so no need to resend.
I should say that I'm not using the protocol in the way it was
designed to be used, so I should expect to have these sorts of
problems. I'm providing an API which allows querying of the
objects in a repository and a sandbox, while the protocol feels
more like a synchronizing protocol, with much of the smarts on
the server side.
I have modified my code to work around this (by adding caching),
and since I want to work with many versions of CVS, I'm not
clamouring for anything to change. Probably the CVS client uses
this behaviour to save itself extra work, right?
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