在上一家公司用的是Cornerstone进行代码管理,在多人开发的情况下使用十分方便,所以今天查阅相关资料,搭建了一个本地的svn,在不需要网络服务器的情况下进行代码管理,同时也可以在局域网下进行多人开发。
先声明查询的资料来源:
http://www.cnblogs.com/czq1989/p/4913692.html
http://blog.csdn.net/sy431256wr/article/details/22377455
我使用的Cornerstone下载网址:
http://www.cr173.com/mac/121625.html
正文
Mac默认安装了svn,只需要进行一些配置并开启就行,验证是否安装了svn,打开终端,输入命令
svnserve --version
屏幕快照 2017-03-29 14.04.37.png
看到版本号说明已安装svn
接下来开始配置svn,创建一个svn文件夹,路径可以自行设定,
sudo mkdir -p /Users/double/svn/mycode //可以手动创建,命令行创建显得逼格高一点
sudo svnadmin create /Users/double/svn/mycode //将之前创建的文件夹设置为svn的代码库
打开该路径可以看到已经自动生成了一些文件,这里可以进行一些配置可修改
图片.png
配置用户权限
修改svnserve.conf文件,这里我用的subLime工具进行编辑
图片.png
打开后,对照下图进行修改,其中anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问;
别忘了去掉#号
配置passwd文件
图片.png上面的作用是创建了两个用户,aaa密码是111,用户bbb密码是222
配置authz文件
图片.png在[groups]下添加uesrs = aaa,bbb标示创建了一个用户组,此用户组包含有aaa和bbb两个用户
@users = rw 这两句标示给users用户组相应的权限;
[/]表示授权的目录路径,这里是根目录,假如根目录下有一个目录叫做test,那么我们如果要编辑此目录的权限那么就要写成[test:/];
@uesr表示给用户组授权,如果要给某一个用户授权则不用写前面的@
r表示可读,w表示可写
启动svn服务器
在终端输入(这里是我的文件路径,改成你的)
svnserve -d -r /Users/double/svn
注意不要输入svnserve -d -r /Users/double/svn/mycode
没有错误返回就说明svn服务器开启成功了
如果出现 Can't bind server socket: Address already in use,打开Finder应用程序,实用工具,活动监视器,查找svnserve,会发现
屏幕快照 2017-03-29 14.28.37.png
终止掉它,重新进行svnserve -d -r /Users/double/svn即可
配置Cornerstone
图片.png点击加号
图片.png选择svn server并填写红框中那些内容
server :本地服务器就填localhost,如果多人开发就让另外一个人填你的IP地址,IP地址在网络里面可以查看
repository path:svn下的代码库路径,所以我这里填的是mycode
最下面的是账号密码,刚刚添加了两个,aaa和bbb,填进去就行,成功了会提示success
上传项目
到这里就搞定了,试着Inport一个项目,照着流程走,没问题当然最好。
如果出现了can't open file db/txn-current-lock:permission denied ,说明某些文件权限不够,找到svn目录下的db文件夹,通过终端将其所有文件改成可读写
sudo chmod -R 777 修改的文件/夹
屏幕快照 2017-03-29 15.02.57.png
现在再试一下就可以了,试着修改代码后commit,或者update一下,ok! 从前的感觉又回来了~
网友评论