[cvsnt] Re: Re: Having problems with "cvs watch on" in CVSnt 2.0.55

Dave Hux dah at yellowradio.co.uk
Mon Sep 27 12:57:40 BST 2004


Thanks Tony, further details added below.....

 >Dave Hux wrote:
 >> <>I'm fairly new to CVSnt so apologies if this is either covered
 >> elsewhere or should be elsewhere...
 >>
 >> I have a local repository with which I have been trying out the basic
 >> functionality. This contains a single module (in addition to CVSROOT)
 >> with a subdirectory. Initially this was being used in an 'Unreserved
 >> checkout' regime.
 >>
 >> Subsequently I've tried changing to a 'Reserved Checkout' regime via
 >> 'cvs watch on'. However this appears to only set a watch on one file in
 >> each directory
 >
 >That won't give you reserved checkouts, only notification when someone
 >changes the file (it'll change the files to read only, but that's
 >trivial to circumvent).
 >
 >The closes you can get is to force reserved edits by using the -kc
 >option in cvswrappers (useful for things like .doc files that aren't
 >mergeable, although in that particular case you'd use -kbc).

 >You can exclusively edit a file (using edit -x) but there's no way at
 >present to actually force someone to do that.

 >As has been said many times before, If you really need reserved
 >checkouts then CVS may not be the right tool for you.

 >Tony

... The psuedo reserved checkout regime of read-only attributes and 
notification is what I'm after. The problem is that 'cvs watch on' 
appears to flag only one file in each directory as read only and 
watched. The others remain writeable and don't get an entry in the 
fileattr.xml file. (Look at the file attributes in the sandbox and look 
for the "<watched />" entry in the XML fileattr file in the repository's 
CVS subdirectory - I've detailed the steps I followed at the end of this 
posting).

Looking back at earlier versions, it would appear that the behaviour was 
more as expected (ie all files in directory watched and read-only) prior 
to the fileattr file becoming XML??? Is there perhaps something I'm not 
setting up right?

Cheers
    Dave Huxford
-------
To repeat, try the following:

- Create a repository containing three files, test1.txt, test2.txt, 
test3.txt. (I used tortoiseCVS to create a module (named DAH) and then 
CVSnt for the remaining steps)

All three files have write access in a sandbox and fileattr.xml contains:

- <#> <fileattr>
- <#> <directory>
  <owner>xxx\Dave.Huxford</owner>
  </directory>
  </fileattr>

- Use "cvs watch on DAH" in a sandbox. fileattrr.xml now contains:

- <#> <fileattr>
- <#> <directory>
- <#> <default>
  <watched />
  </default>
  <owner>xxx\Dave.Huxford</owner>
  </directory>
- <#> <file name="*test1.txt*">
  <watched />
  </file>
  </fileattr>

Release and check out the repository again. test1.txt is now read only 
but test2.txt, and test3.txt are still writeable.

- Use "cvs watch on test2.txt". fileattr.xml is UNCHANGED (would have 
expected it to contain an entry for test2.txt") and, having rechecked 
out the repository, test2.txt is still writeable.

- Use "cvs watch off test1.txt". fileattr now contains:
- <#> <fileattr>
- <#> <directory>
- <#> <default>
  <watched />
  </default>
  <owner>xxx\Dave.Huxford</owner>
  </directory>
  </fileattr>

and all files are writeable once checked out again.

- Finally set a watch on test2.txt again (cvs watch on test2.txt).

fileattr now contains:

- <#> <fileattr>
- <#> <directory>
- <#> <default>
  <watched />
  </default>
  <owner>xxx\Dave.Huxford</owner>
  </directory>
- <#> <file name="*test2.txt*">
  <watched />
  </file>
  </fileattr>

and, rechecking out, test2.txt is read only but test1.txt and test3.txt 
are writeable.

So it would appear that a watch can only be set on a single file in a 
directory and not on multiple files.
-------





More information about the cvsnt mailing list