svn服务器搭建与使用
最近与朋友一块做东西,用到了svn。之前接触过没常用忘得差不多了。这次写这篇文章记录下来供日后复习。
一、svn的基本操作
版本库创建(create):版本库一般创建在一个服务器上,其他用户将自己的文件提交到这个服务器进行保存。版本库包括提交的文件,还有修改历史。
检出(checkout):将创建一个版本库的工作副本。工作副本是开发者私人空间,可以在这里面进行代码的修改,添加文件等操作。当然,不用担心会对服务器的版本库造成破坏,因为未提交到服务器上。
更新(update):用来更新版本库,将工作副本与服务器上的版本库进行同步。
执行变更(add,del):当检出一个工作副本后,可以对这个副本中的文件进行修改或删除,操作完毕后,通过add或del将其加到待变更列表中。直到执行了commit之后才真正删除
提交更改(commit):可以将在自己工作副本中修改的内容提交到服务器上,修改了服务器版本库的内容。其他用户再次checkout的时候,将会是你commit的内容。当然,commit之前,先必须将其修改的内容加到待变更列表中。
另外还有,复查变化,修复错误,解决冲突等操作。这些可以从网上找到相关资料,此处不深入研究。
二、在服务端搭建svn版本库
(1)先创建一个目录,用于保存所有的版本库。
(2)创建一个版本库
这样,便创建了一个test版本库,进入查看一下。
会有这些文件,我们需要关注的是conf,这个文件夹下包括三个文件。
passwd:这个文件用于保存可以登录版本库人员的账号密码
authz:用于管理访问版本库人员的权限
svnserve.conf用于指定版本库对应的passwd位置,authz位置等内容。
(3) 进入conf下面的passwd,添加两个角色,jone与luck
(4)进入authz,设置角色的权限
设置角色权限有两种方式,
一种是为角色设置一个group(像是luck),格式为
组名=用户名1,用户名2,用户名n
然后,通过@组名的方式设置权限。r表示读,w表示写
另一种直接是 用户名=权限方式直接设置权限(像jone)。
另外,[/]表示可以对版本库下的所有文件都可以进行修改。
(5)进入svnserve.conf
将这几个注解打开,前面不能留空格。realm指定的是版本库的位置。
(6)启动版本库,启动方式有两种
一种是
这样是单库方式启动,启动后直接通过 一下访问直接得到test版本库的副本
第二种是多库方式启动
这样,通过一下方式得到test版本库副本
三、标准目录结构
一般情况下,svn版本库中需要创建下面三个文件夹
trunk:主分支,日常进行开发的地方。
tags:一般是只读目录,一般是阶段性的发布版本。作为一个里程碑式的文档。
branchs:分支目录,一些阶段性的release版本。
ps:如有不对,请指出