一直使用 SVN 来同步自己的代码,这样可以方便的保留历史记录,不过,有一点不方便的就是,提交时必须保证能连接到 SVN Server ,Git 就不必,可以本地提交,待到连网时再同步到 Git Server ,于是,这两天把自己的 SVN Server 更新成了 Git Server。

我的 SVN Server 是安装在我的 NAS 的 Server 2012 上的,使用的是 VisualSVN Server,用起来极其方便,这次找来找去找到了一个支持 Windows 平台的 GitStack ,免费版本支持 2 个用户但不限定功能,这对个人用户足够了,到 http://gitstack.com/ 上下载,安装一路 Next 即可,需要注意的是,如果你的系统里有其他 Web Server ,比如 IIS 什么的,需要先停止掉,因为 GitStack 安装的 apache 默认会占据 80 端口 。安装完毕之后会进入web配置界面,简洁,基本上一眼就能看懂,需要注意的如下

1)如果你的服务器是公网,尽量禁止掉 Web 浏览仓库的功能,因为我发现这个 web 界面默认会列出来所有仓库的名称,虽然进入每个仓库需要账户,但是被人看见项目名称也不爽吧。

2)要在你的系统防火墙里允许 httpd.exe (就是gitstack 带的 apache )通过,否则 clone 或者 push 都会出现 401 error 。

3)每个仓库都要设置账户,这点和 visualsvn server 不同,visualsvn server 的账户是通用的,gitstack 每个仓库都必须单独指定访问账户及权限。

接下来把 svn 仓库转入 gitstack 稍微麻烦点,每个仓库都需要用 git 从 svn server 克隆出来处理之后再 push 进去,不过官方给了步骤,按部就班即可。参见 http://gitstack.com/migrate-from-svn-to-git/

git 客户端使用的还是那只乌龟的 TortoiseGit ,不过注意需要先安装 git 才可以。

补充:

用了一会,发现 git 不支持部分克隆(部分导出,或者说单独导出仓库的某个子目录),郁闷,这可是很有必要的功能啊,否则仓库数量就太多了。