本地建立Subversion仓库

来源:互联网 发布:先科q7网络机顶盒论坛 编辑:程序博客网 时间:2024/05/17 00:57

Subversion真是个好东西,大大提高了团队协同开发的效率,也为本地进行程序开发时保存不同版本提供了便捷。再也不用为一个个小程序在不同进度时,建立xxxx200808026.zip之类突兀文件了,一段时间后自己都不知道这个压缩内包含什么进度内容了。有了Subversion后一个update加一条清楚的注释搞定一切。

今天在机器建了一个版本库,将过程记下以便日后查阅。我的环境是WindowsXP+SP3+SVN 版本 1.4.6 (r28521)

  1. 安装Subversion。从官网下载回来一路Next,略过。
  2. 在我的F盘建立一个SVN目录,用来存放版本库的文件,将来所有代码也将提交到这里。
  3. 我的Subversion是安装在D:/Program Files/Subversion/bin下的,在CMD下将目录切换到此处。输入如下命令:svnserve -d -r f:/svn,该命令是用来启用SVN服务的,回车以后,将进入等待界面。进行其他操作需要另起一个CMD,否则会导致后面连接不上。
    简单介绍一下这条命令,-d表示svnserve.exe将以服务的形式在后台运行,-r表示root,以f:/svn作为下面连接服务器的概目录。由于Subversion1.4开始,Subversion本身就集成Windows服务的工具,所以可以直接将svnserve注册成Windows系统服务,随系统启动一起启动在后台运行。注册成服务的脚本是这样的
    sc create svn
    binpath= “D:/Program Files/Subversion/bin/svnserve.exe –service -r f:/svn”
    displayname= “Subversion Service”
    depend= Tcpip
    start=auto
    在上脚本可以连成一行,将换行处换成空格即可。我个人比较倾向第一种方式,毕竟为一个几天才更新一次或者一天才更新一次的svn,注册成系统服务我感觉划不来。在提交的时间大不开个Cmd执行svnserve -d -r f:/svn还是比较方便的。如果你想删了刚才的服务,可以使用net stop svn sc delete svn,这两句脚本即可。
  4. 这一步用来建库。命令是:svnadmin create f:/svn/test –fs-type fsfs,如果没出现在什么错误的话,你进入F:/SVN目录后,将会看到Subversion已经建立了一系列文件了,这些文件就是你要的版本库主体文件。这条命令后面的参数–fs-type fsfs,是建立版本库的不同存储方式。还有一种比较常见的就是–fs-type bdb。两种方式各有其优缺点,fsfs已经足够我用了。关于两种方式的异同,请阅这篇文章:subversion中BDB和FSFS两种存储方式的比较。
  5. 配置用户和权限。打开f:/svn/test目录下的conf文件夹,该文件夹用来保存用户信息及权限的。其中的svnserve.conf用来记录匿名访问和通过验证的访问权限,以及用户文件与权限分配文件名。svnserve.conf中我是这样配置的:
    [general]
    anon-access = read   #匿名用户根权
    auth-access = write   #通过验证用户根权
    password-db = passwd #用户帐号文件名
    authz-db = authz    #权限分配文件名
    文件passwd,是用来记录用户帐号的文件。我是这样配置的:
    [users]
    lonkil = vcfans.com
    文件authz是用来记录种权限的分配,包插用户组,以及各个用户可以具备不同的根限,管理的相当严格。我的配置如下:
    [test:/]
    lonkil = rw
  6. 导入第一版数据到版本库中。命令“svn import test svn://127.0.0.1/test -m “the first one” –username lonkil –password vcfans.com”,此时我当前路径在F:/MySpace下,该命令将F:/MySpace/test文件结构全部导入到Subversion库中。-m参数表示添加的该版本的注释。

到这里我已经罗里巴嗦的将建库的过程介绍结束了,接下来就可以使用了。就可以通过svn://127.0.0.1/test进行update,commit等等操作了。

 

 

 

补充说明:

关于SubVersion的“无权打开根进行编辑操作”问题

在使用SVN进行Checkout时出现错误提示:无权打开根进行编辑操作。
在svnserve.conf中进行了这样的设置:
anon-access = read
auth-access = write

如果设置为:anon-access = none,不会出现错误提示。

解决方法:
在authz文件中加上:
[/]
* = r
原创粉丝点击