这两天配置了一下cvs,遇到了一些问题,总结了下来。希望能够帮到大家。
使用工具:cvsnt,wincvs。这两者的安装大家去搜索一下就好。这里不再赘述。下面入正题:
1、在cvsnt中新增仓库/mycvs和/mycvs/files
2、如果只建立/mycvs仓库,在登陆时会报错,如下:
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs login
Logging in to :pserver:jack@127.0.0.1:2401:/mycvs
cvs [login aborted]: authorization failed: server 127.0.0.1 rejected access to /mycvs for user jack
***** CVS exited normally with code 1 *****
3、新建仓库后,再新建用户,才可以保证新用户正常登陆。否则汇报错,如下:
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs login
Logging in to :pserver:jack@127.0.0.1:2401:/mycvs
cvs [login aborted]: authorization failed: server 127.0.0.1 rejected access to /mycvs for user jack
***** CVS exited normally with code 1 *****
4、新建用户:
先登陆管理员:cvs -d:pserver:administrator@127.0.0.1:/mycvs login
再新增用户:cvs -d:pserver:administrator@127.0.0.1:/mycvs passwd -a jack
5、做完第四步后,再次用jack登陆就可以了。结果如下:
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs login
Logging in to :pserver:jack@127.0.0.1:2401:/mycvs
***** CVS exited normally with code 0 *****
6、此时可以checkout了。注意下面两组内容的不同结果。
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs export -r HEAD -- files (in directory D:/cvs)
cvs export: Updating files
***** CVS exited normally with code 0 *****
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs checkout -P -- files (in directory D:/cvs)
cvs server: Updating files
cvs checkout: in directory .:
cvs checkout: cannot open CVS/Entries for reading: No such file or directory
***** CVS exited normally with code 0 *****
7、此时如果直接添加目录,回报错,如下:
cvs add -- toolkit (in directory D:/cvs/)
cvs add: No CVSROOT specified! Please use the `-d' option
cvs [add aborted]: or set the CVSROOT environment variable.
***** CVS exited normally with code 1 *****
8、在wincvs客户端的根目录下新增txt.txt文件,文件有内容,新增目录toolkit,并在新增的目录下新增txt.txt文件。完成后再执行import命令。注意,在Import settings中的Import options选项卡中,要勾选“Create CVS directories while importing”。
Filtering 'D:/cvs/toolkit'...
Filtering 'D:/cvs/'...
Filtering 'D:/cvs/toolkit'...
cvs -d :pserver;hostname=127.0.0.1;username=jack:/mycvs import -C -I ! -I CVS -m "no message" -- cvs avendor arelease (in directory D:/cvs)
N cvs/txt.txt
cvs server: Importing H:/mycvs/cvs/toolkit
N cvs/toolkit/txt.txt
No conflicts created by this import
***** CVS exited normally with code 0 *****
9、到此可以正常使用了。
Saved settings for D:/cvs successfully...
cvs commit -m txt -- txt.txt (in directory D:/cvs/toolkit/)
RCS file: /mycvs/cvs/toolkit/txt.txt,v
done
Checking in txt.txt;
/mycvs/cvs/toolkit/txt.txt,v <-- txt.txt
initial revision: 1.1
done
***** CVS exited normally with code 0 *****
10、如果同一个用户在不同的机器上登陆,也要先import再update,参照第8步。
11、对于批量提交的文件夹和文件,采用import方式来解决,注意要在根结点处import否则提交的文件在服务器端的位置在root下,而不是你希望的目录。
12、如果遇到无法上传得情况,则先将文本拷贝到目录下,import文件,再update此文件夹中的文件,除去冗余后再次上传。具体操作可以参考步骤8。
13、如果出现了如下错误:
XML error at line 0: output conversion failed due to conv error, bytes 0xFE 0xCE 0xF1 0xC6
XML error at line 0: encoder error
Unable to create H:/mycvs/cvs/setup/CVS/fileattr.xml
cvs server: cannot write /mycvs/cvs/setup/CVS/fileattr.xml: No such file or directory
说明在服务器端的CVS目录下的fileattr.xml文件被破坏掉了,此时从别的目录下copy一个过来即可。