SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,svn 服务器有两种运行方式:独立服 务器和借助 apache 运行。右图是一个 svn 的工作流程,它可以很方便用户的代码编写。1.首先安装 SVN:”sudo apt-get install subversion”. 查看 svn 的版本和确定是否安装成功:”svnserve –version”. 2.创建 svn 仓库:“svnadmin create msm”,其中 msm 是版本仓库的名字,仓库建立好了以后会有出现一 个仓库名字的文件夹,文件夹下面有 conf 等几个目录和文件.接下来就需要设置版本仓库的权限了。这里说明 一下:版本库之间是独立的。(下图为 msm 的目录)3.增加用户 修改 conf 文件夹下的 authz 文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出 对各用户的授权。包括只读 r,读写 rw。没有列出的用户,则不允许访问。还可以对用户分组,列子如下 用户组格式: [groups]<用户组名>=<用户 1>,<用户 2>其中,1 个用户组可以包含 1 个或多个用户,用户间以逗号分隔。
版本库目录格式: [<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>, 其中,方框号内部分可以有多种写法: /,表示根目录(仓储目录)及以下。根目录是 svnserve 启动时指定的,我们指定/opt/svndata。这样,/ 就是表示对全部版本库设置权限。权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权 限可以是 w、r、wr 和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:4.修改用户密码 添加用户后就要为用户设置密码了,打开 conf/passwd 文件:输入格式为, [users] <用户 1> = <密码 1> 如: admin = admin <用户 2> = <密码 2> 如: username2 = password2 …... 左边是我的添加: 5.启动 svn 对用户权限、密码的控制 需要启动 SVN 对用户权限、密码的控制,不然的话你就只能读而不能写了。需要修改 svnserve.conf 文件,我们只要取消下面几条前面的#号注释就好了:(注意,不要留有空格) anon-access = read auth-access = write password-db = passwd authz-db = authz 如:重启 svn 服务 输入:”svnserve -d -r /usr/bin” -d 表示以后太服务方式执行,-r 就表示 root,后面是我的 svn 根目录 出现如下错误解决办法,要先把 svnserve 进程干掉。
找到服务对应进程编号,命令为:“ps -e|grep svnserve”,使用 kill 命令,之后再使用启动命令,如图:6. 给 svn 仓库空间中的 DB 目录分配写入权限(不然不能写入文件):“sudo chmod 777 -R 仓库目录”;然后在浏览器中输入:“”,可以查看 msm 目录 下面是 svn 的标准目录结构PS.svn 的常用命令: 1.修改监听端口: svn 监听默认为 3960,如修改为 9999:‘“svnserve --listen-port 9999 -d -r /usr/bin”变量含义简单介绍: /home/svn :SVN 安装目录 new_project:要创建的仓储名称 192.85.1.2/xabeschrm 中的“xabeschrm” :目标仓储名称/trunk/0-Src/xabeschrm/WebRoot 中的“xabeschrm”:项目名称 1.将文件 checkout 到本地目录 svn checkout path(path 是服务器上的目录) 例如:svn checkout svn://192.85.1.2/xabeschrm/trunk/0-Src/xabeschrm/WebRoot 简写:svn co 2.往仓储中添加新的文件 svn add file (这里恐怕后面要添加目录吧!) 例如:svn add test.jsp(添加 test.jsp) svn add *.jsp(添加当前目录下所有的 php 文件) 3.将改动的文件提交到仓储 svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关) 例如:svn commit -m “add test file for my test“ test.jsp 简写:svn ci4.加锁/解锁 svn lock -m “LockMessage“ [--force] PATH 例如:svn lock -m “lock test file“ test.jsp svn unlock PATH 5.更新到某个版本 svn update -r m path例如:svn update 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。