最近组织在做一个比较大的项目,需要多人参与配合,经常会对项目文件增删查改,因此使用了SVN
作为项目管理工具。但大家都很“盲”,所以搭建SVN服务器
的任务就落在了我这个菜鸟身上。
工具使用
TortoiseSVN
,安装过程中记得把命令行工具也安装上,不然无法使用命令行提交代码。选择一个空文件夹,比如
E:\SVN
,进入后鼠标右键创建一个版本库进入
conf
文件夹,打开svnserve.conf
文件,分别找到
anon-access = read
auth-access = write
password-db = passwd
去掉前面的注释,并注意不要留空格。
- 打开同目录下的
passwd
文件,在[users]
下添加用户名和密码,默认有两个示例:
# harry = harryssecret
# sally = sallyssecret
左边是账号,右边是密码,供组织内不同成员登录用,但如何为每个角色赋予不同权限不太会弄,似乎需要用到hook
脚本。比如要为Lucy
添加一个账户,可以添加:Lucy = Lucy_123
,这样Lucy就能以密码Lucy_123
访问项目了。
还有一点比较关键,就是要共享这个版本库所在的文件夹,并设置好读写权限,不然除了主机外别的成员是访问不到的。
然后开启主机上的
SVN服务
,在命令行中输入
svnserve.exe -d -r E:\
即将E盘作为服务的根目录
- 上述操作完成后,可以在主机上用
file:///E:\SVN\respotityName
检出项目文件,在局域网的其他计算机可以用
svn://主机ip/SVN/respotityName
进行检出操作,至于外网,理论上可用
http(s)://主机ip/服务器资源库名称
访问,不过没有试验过,不知道防火墙会不会阻止端口的连接。
配置独占签出
- 在检出的项目文件夹上点击右键,选择
TortoiseSVN -> 属性 -> 新建 -> 需要锁定
,这样项目里的子文件夹就都加上了needs-lock
的属性,以后每次签出都会锁定文件。但SVN
不会主动发出通知告诉其他用户文件被锁了,所以每次编辑文件前先尝试加一次锁,如果提示失败就表示文件被其他用户独占了。