最近组织在做一个比较大的项目,需要多人参与配合,经常会对项目文件增删查改,因此使用了SVN作为项目管理工具。但大家都很“盲”,所以搭建SVN服务器的任务就落在了我这个菜鸟身上。

  • 工具使用TortoiseSVN,安装过程中记得把命令行工具也安装上,不然无法使用命令行提交代码。

  • 选择一个空文件夹,比如E:\SVN,进入后鼠标右键创建一个版本库

    局域网简单的SVN服务器的搭建-LMLPHP

  • 进入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不会主动发出通知告诉其他用户文件被锁了,所以每次编辑文件前先尝试加一次锁,如果提示失败就表示文件被其他用户独占了。
05-11 20:25