SVN: Subversion


SVN是用来取代CVS的版本控制工具

svn on Windows


Client


TortoiseSVN, 用法跟TortoiseCVS差不多,与Explorer集成,用起来很方便,这里就不多说了:)

Server


SVN的Server有Standalone和与Apache结合两种方式,由于后一种需要Apache2,所以我用的是Standalone方式。

  1. 首先,下载官方命令行工具并安装;
  1. 在本机上建立一个目录作为所有repo的根目录,我用的是D:\svnroot
  1. 在根目录上建立repo的子目录,比如D:\svnroot\project1
  1. 进入D:\svnroot\project1目录,使用TortoiseSVN的"Create Repository here..."功能,选择Berkeley DB,会在这里创建repo
  1. 进入创建好的conf目录(D:\svnroot\project1\conf),修改passwd和svnserve.conf文件,都是类似于ini的语法
  1. 都好了后就可以在命令行运行"svnserve -d -r D:/svnroot"来启动server了,其中-d表示daemon方式运行,-r表示以d:\svnroot作为根目录
  1. 如果想要作为系统服务,可以用第三方软件,我用的是FireDaemon Lite 1.6,现在官方已经不提供免费的Lite版本了,这里可以下载

这里需要注意的是:

SVN on console



SVN repo的后台更改


SVN的repo的后台有两种格式:bdb(Berkeley DB)和fsfs(文件系统),而bdb又有很多版本,这些后台彼此都不兼容。

当要将已有的repo从一种后台转换成另一种后台(比如从bdb到fsfs,或者升级了本机bdb/svn的版本)的时候,可以使用下面的方法:

  1. 停止apache或者svnserve,防止数据写入
  1. 创建临时的新repo目录,使用新的后台
	svnadmin create /path/to/new/repo --fs-type fsfs(or bdb)

  1. dump老repo并load到新的里面去,使用这个命令:
	svnadmin dump /path/to/old/repo -q | svnadmin load /path/to/new/repo

  1. 如果是升级,上一步分成两步(先dump到文件,再从文件load)
  1. 检查一下老repo的hooks目录下有没有后来增加的文件(新repo里面没有的),若有则cp过去
  1. 用新repo替换掉老的,启动apache或者svnserve
  1. 如果确认无误,可以删除掉老的了
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki