[cvsnt] Hundreds of little green fish
bo.berglund at telia.com
Wed Jun 22 23:11:53 BST 2005
On Wed, 22 Jun 2005 15:02:55 -0500, "Joelle Tegwen" <tegwe002 at umn.edu>
>I'm running CVSNT 2.5.01 build 1927 on Windows Server 2003.
Upgrade to 1976!
>I have a scheduled task that runs the following script:
No good cvsroot and then again you don't need this if you already have
a sandbox in place. It will not be used anyway.
>cvs co youthhood
>The script runs as user: me.
>I don't know the capacity of the machine it's on, but it's slow, slow, slow.
>When the script was running every 2 minutes it was really bad. 20-30 fish or
>more regularly. That was during "pre-release" where fast updates were
>important. Now we're doing regular development and we're at 5 minute
>increments and I usually have 2-3 fish but I have seen 20-30 fish. If I kill
>the cvslock service in the task manager the computer speeds up a lot and the
>fish go away.
>Is this enough information?
At least it tells us that you are doing things in a very strange
1. If you are working with CVSNT 2.5.01 you should at least update it
when bugs are fixed. 1976 is the current recommended version and 1927
had a number of bugs that might bite you. Not recommended.
2. You should not set up a scheduled task for getting the latest
sources like that! Put the website update code in the postcommand
3. I assume that your website is already a checked out sandbox on
HEAD. Then the set cvsroot command in your batch file serves no
purpose. And the cvsroot setting you use is also bogus, that is not a
valid CVSROOT for a server operation!
If you had looked in the cvsnt helpfile you would have seen the item
on keeping a website current...
I would do it the following way:
A) Create a batch file that will do what you need:
rem only process this if command was commit
IF NOT '%2'=='commit' goto exit
save the file somewhere, for example: c:\programs\cvsnt\websync.bat
B) make sure that the youthood folder and subfolders are checked out
using a decent client/server protocol. For example:
CVSROOT = :sspi:cvsserver:/repository
If it is already checked out then you have to remove it and then check
it out manually using the CVSROOT suggested above.
C) Put this in the postcommand file:
Now for each commit done in your repository there will be a cvs update
executed at the end of the commit. This means that the commands will
only execute if needed, namely if someone has actually committed
anything. And it is done immediately afterwards so there is no latency
(Bo Berglund, developer in Sweden)
More information about the cvsnt