The cvs manual says: > `commit' verifies that the selected files are up to date with the > current revisions in the source repository; it will notify you, and > exit without committing, if any of the specified files must be made > current first with `update' In server mode cvs committed a file which was up to date even though another file was not up to date. That seems to contradict the above manual section since it says it will exit without committing. I interpret that to mean that it exits without committing *anything*. I.e. even if *some* of the files were up to date, it won't commit even those up to date files. I would like it to work that way, because if it committed some files which were up to date, those files might need the recent changes in the files that were not up to date. If my colleague then updated his working directory he would get only some of what I hoped to commit. That might cause him to get a compiler error. So it is better for cvs to either commit everything or commit nothing. But in server mode, this does not happen. But it works correctly in local mode. This happens with cvs 1.11 The script below demonstrates this bug. Run the script with a command line argument of local and then at the end you will see that the cvs log command shows no new versions for the up to date file b. But run it with the ext argument and then the cvs log command does show that a new version was committed to the up to date file b. It should not have committed since file a was not up to date. That file was not up to date since it was removed. #!/bin/csh -f if ($1 == "local") then echo using local setenv CVSROOT /tmp/cvs_test/repository else if ($1 == "ext") then echo using ext mode setenv CVSROOT :ext:$USER@localhost:/tmp/cvs_test/repository else echo "Usage: $0 local\n $0 ext" exit 1 endif set path = ( ~/cvs-1.11/src $path ) set SRC_DIR = `pwd` cvs --version rm -fr /tmp/cvs_test mkdir /tmp/cvs_test cd /tmp/cvs_test cvs init mkdir moduletest cd moduletest touch a b cvs import -m "test log" moduletest vendortest start_release_tag cd .. \rm -fr moduletest cvs checkout moduletest cd moduletest echo j >> b rm a if {(( cvs ci -mnolog ) > stdout)} >& stderr then echo success else echo failed endif echo stdout= cat stdout echo stderr= cat stderr echo end stderr cvs log b _______________________________________________ Bug-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-cvs