[cvsnt] cvslock.exe not started: bug?

David Citron dcitron at nni.com
Fri Jan 26 04:22:31 GMT 2007


Upon further inspection, I think the bug may be isolated to "rcsfile":

  - "rcsfile" sets the internal flags CVS_CMD_NO_ROOT_NEEDED and 
CVS_CMD_LOCKSERVER
  - CVS_CMD_NO_ROOT_NEEDED ensures that the variable 
"current_parsed_root" is NULL
  - "current_parsed_root == NULL" ensures that cvslock.exe is not started
  - CVS_CMD_LOCKSERVER ensures that cvs.exe attempts to connect to 
the lock server

And thus it fails if cvslock.exe is not already running.

Thanks,
David Citron

At 07:31 PM 1/25/2007, David Citron wrote:
>Hi!
>
>I am using CvsNT via TortoiseCVS, so the lock server is not always running.
>
>As such, if I issue a cvs command from the command-line that does not
>include a CVSROOT or -d flag, cvs.exe fails because it does not start
>cvslock.exe and thus cannot connect to it. An example command might be:
>
>"<cvsnt>\cvs.exe" "rcsfile" "rlog" "-r" "<cvsroot>\<module>\<file>,v" ...
>
>Note that "rcsfile" does not require a root.
>
>I have some observations after looking at the source code (src/main.cpp).
>
>1) CVS_CMD_NO_ROOT_NEEDED is set for "rcsfile", thus it is valid to
>omit CVSROOT
>2) As such, current_parsed_root will be NULL
>3) If current_parsed_root is NULL, then cvslock.exe is not started
>(main.cpp:1486)
>4) Even when current_parsed_root is NULL, lock_register_client() is
>still called (main.cpp:1534)
>
>So the issue here seems to be that when current_parsed_root is NULL,
>either cvslock.exe should still be started, or lock_register_client()
>should not be called.
>
>Should I file a bug report for this or am I missing something?
>
>Thanks!
>David Citron
>
>P.S. The work-around is to install cvslock as a service and leave it running.
>
>_______________________________________________
>cvsnt mailing list
>cvsnt at cvsnt.org
>http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt



More information about the cvsnt mailing list