用SVN来保存代码是非常好的方案,一方面可以很好的保存好写过的代码(不用担心误操作把代码搞没了或乱了),另一方面可以进行多人协作,是个很好的团队开发协作平台。
本人此次研究SVN的目的比较简单,就是想做个人的代码仓库,方便对自己的代码进行管理。切入正题。
参考文献:svn-book
安装SVN:
1 | $sudo apt-get install subversion |
SVN目前版本支持两种数据保存方式,BDB和FSFS.前者是Berkeley DB,利用Berkeley DB数据库系统实现版本控制.后者通常发音”fuzz-fuzz”是通过文件系统实现的.在svn-book当中对两种实现方式进行了多方面的比较。FSFS储存方式比较灵活,可移植性好,但有些方面会比BDB式的慢。出于移植方面的因素,我决定使用FSFS进行数据存储。
1 2 3 | $ # Create a repository $ svnadmin create /var/svn/my_repos $ |
my_repos是要创建的版本库名
这样就创建好了一个库。
注:SVN 1.2版本之后默认不加参数就是创建FSFS文件存储模式,也可以写成下面这样选择用FSFS或dbd来进行版本存储
1 2 3 4 5 6 7 | $ # Create an FSFS-backed repository $ svnadmin create --fs-type fsfs /var/svn/my_repos $ $ # Create a Berkeley-DB-backed repository $ svnadmin create --fs-type bdb /var/svn/my_repos $ |
创建好后在my_repos/hooks/下的许多文件
1 2 3 4 5 | $ ls my_repos/hooks/ post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl $ |
以上是执行相应操作而响应的脚本文件,如果有想法和能力的话可以修改和替换这些脚本,来实现自己想得到的事件操作。
作为守护进程启动(svnserve as daemon)
1 2 3 4 5 6 | sudo groupadd subversion sudo chrown -R Sunny:subversion svn $svnserve -d #库地址 svn://localhost/var/svn/my_repos #或者如下 $svnserve -d -r /var/svn #库地址 svn://localhost/my_repos |
Sunny是我的用户名
在/var/svn/my_repos/conf/svnserve.conf中
1 2 3 | [general] password-db = userfile realm = My first repository |
第一个userfile是用来存储授权用户信息的文件名
格式如下:
1 2 3 4 | [users] name1 = password1 name2 = password2 ... |
第二个realm用来给用户显示验证域,就是用来描述userfile组的一段文字
写在后面:
因为直接查看的官方英文pdf文档,以上内容的学习和操作花了我大概三天的时间,过程中搜索了一些中文教程,之后才发现网上本来就有很多中文教程和很多大虾的文章,感觉有点得不偿失。
另外SVN搭建过程当中很多问题都是因为自己对linux的了解不够透彻,比如用户,组,权限这一类的东西,这个版本库现在能用了,下一步就恶补linux和c++。。


后退
Void
Life
Earth
Wind « Default
Water
Fire
Light 
好想法。。
自动回复,手停不住。。