参考借鉴文章:http://www.cnblogs.com/vijayfly/p/5711962.html
之前尝试着用git管理公司代码,但被一个问题困惑了很久无法解决,那就是git该如何只pull自己想要本地更新的代码?git的fetch命令会把远程库下过来作为本地的远程分支,然后自己来合并,而pull则是fetch+merge。无论fetch还是pull我都没找到合适的解决这一问题的方法。
svn的话会很容易,有了搭建git服务器的经验,svn服务器也很容易。
我的服务器是腾讯云主机,linux centos。
在centos安装svn服务器需要命令yum -y install subversion
之后配置版本库
mkdir -p /opt/svn/repos/svn1 svnadmin create /opt/svn/repos/svn1
创建版本库之后,在版本库目录下的conf目录就会生成三个文件passwd、authz、svnserve.conf
之后再passwd文件配置用户名密码
[users] # harry = harryssecret # sally = sallyssecret # user1 = 123 user2 = 123
authz文件配置权限
[svn1:/] user1 = rw user2 = rw #svn1是具体版本库的标签
svnserve.conf配置基础svn设置,将一些注释的#符号取了
[general] anon-access = none #非授权用户无法访问 auth-access = write #授权用户有写权限 password-db = passwd #密码数据所在目录 authz-db = authz
启动svn:
svnserve -d -r /opt/svn/repos/ #注意目录,不包含svn1 ps aux | grep svnserve #查看服务是否启动
关闭svn命令:
killall svnserve
补充一个报错,出现类似报错是配置文件问题,配置svnserve.conf去掉#注释符时前面不能留空格,svn这方面格式似乎要求比较严格:
客户端:
本地安装客户端版本svn,然后checkout就可以了。地址:svn://192.168.1.1/svn1
以后有什么要补充记录的再更新,例如一些svn服务器命令。
遇见一个问题,本地svn没有显示绿色的对号,修改了文件也没有显示红色的对号。
解决方法:在文件夹右键选择TortoiseSVN然后选择settings,选择Icon Overlays,status cache选择shell
之后找到之前安装包,运行,选择repair(修复)项,之后进行修复,重启应用,重启电脑,就ok了。
2017-05-08
最后定位是svn服务器端服务没启动,因为之前服务器重启过。
2018-05-02 更新 Windows环境下svn server配置情况
1首先安装Visual Svn Server软件,基本一路选默认就可以
2然后再图形界面下添加仓库,右键选择仓库,选择属性,可以添加用户
之后客户端checkout,一开始遇到问题
这个问题是路径写错了
注意路径格式是 svn服务器IP:端口号/svn/库名称
这里有两个容易落下,一是端口号,二是路径中要有‘svn’
如果没有选择默认端口号,例如我选了8443,一定要路径里写端口号
之后遇到问题,SVN Access …… forbidden
说明网络连接已经连上了,但在用户验证方面遇到问题
网上说需要客户端清除用户名密码缓存,再重新填写用户名密码,试过,问题依旧存在
后来发现是因为服务器端创建仓库权限设置有些问题
创建库的时候有上图三个选项
我之前选了第二个选项,然后再添加用户,客户端使用服务器配置的用户名、密码 会报上文提到那个错误
选择第三个选项,Customize permissions,再添加用户,客户端再使用配置的用户名、密码,checkout就不会出现问题