VincentCode新增Git版本控制

前几天用自己的VPS新开了一个代码托管站,鶿想来想去叫神马名字好昵?

嗯就叫 VincentCode 吧,地址为 http://code.brilliant.run/

其实连域名和名字都是模仿的谷大爷的做法,嘛,鶿也想“娱乐”一下啦。

鶿一开始用的是SVN,对于鶿来说 —— 简洁就是美嘛。

因为 Subversion 和 NetBeans 的无缝集成,让鶿的生活变得非常方便。

所以SVN当然是鶿的首选啦。

但是貌似现在Git很流行啊,而且鶿就发现了不少吐槽SVN的人。

然后昵,鶿 Google 了一下 SVN 和 Git 的对比,发现有 “2货” 直接骂道 —— “有了GIT,SVN纯粹一垃圾”。

真是的,我看写那文章的全家都是废品。

鶿确实还不是很熟悉Git,但是对比了一下 SVN 和 Git 鶿觉得各有千秋。

当然 SVN 的主要缺点的单一集中的代码托管服务器,也就是说,那台当 SVN 的服务器万一挂了的话,就只有哭了。

再就是 SVN 的所有历史代码和日志都保存在服务器上,本地获得的只是一个很小的副本,对于提交,更新这些操作,只能从服务器获得信息。

还有一点,SVN 不能撤销提交,也就是万一你的 commit信息 填得不对劲,也无法撤销。。

再说一下 Git 的主要优点。

人家说 Git 是分布式的,鶿认为 Git 能够分布的主要原因就是 Git 不像 SVN 那样只是获得一个副本,Git 检出的代码是对整个软件仓库的“克隆”,即大家熟悉的命令:

git clone

你把整个服务器都打包下来了,能不分布么?

然后就是有人说Git比SVN快。

鶿觉得这也不奇怪,因为你一旦 git clone 后,那么你的开发大部分都是在和本地仓库打交道,因为本地服务器是完整“克隆”,当然断网了也可以用。

也就是当你 git pull 或者 git push 的时候,才是真正的和服务器打交道,平时的 git add 和 git commit 其实都是往你的本地仓库塞东西而已。

然后嘛,鶿说说 SVN 一些问题的解决办法。

对于 SVN 的单服务器方式,其实嘛,有经验的都知道——备份才是王道嘛!

你按规律,定期将 SVN Server 的项目的版本库直接打包不就得了。

有人觉得 SVN 每个目录下都是 .svn 文件很讨厌,其实检出的时候用 svn export 就可以了,至于你实在是讨厌那个 .svn 文件的话,一句命令:

find xxxx -name .svn|sudo xargs rm -rf

马上将所有 .svn 目录删得一干二净。

还有人说 git 是用 SSH 提交的,我想你的 Git 服务器使用的 SSH 实现的吧,而鶿的 Git 服务器 可是使用的 HTTP(S) 协议哦!

其实 SVN 支持5种协议,file:/// , http:// , https:// , svn:// , svn+ssh://

其实看到 svn 可以支持 文件方式 的协议,鶿就觉得 SVN 能够支持 SSH 就不远了。

你既然可以 这样直接从文件夹检出代码,即:    svn checkout file:////home/mucid/svn/project1 的话,那么再套个SSH有什么难的?

当然,虽然 SVN 原生支持 svn+ssh 方式,即:    svn checkout svn+ssh://192.168.1.10/topcity    ,这看起来和鶿脑中想的不一样,但是也不错啦!

当然,SVN 的缺点有些可以解决,但是有些不能解决,比如 撤销提交 什么的。

所以总体上说 Git 比较完善,但 SVN 比较轻巧。

所以,鶿考虑了很久,既然我都把 SVN 部署到了 VPS ,那么再增加一个 Git 代码仓库上去也不是难事啦。

没错,鶿的 VincentCode 即 http://code.brilliant.run/ 现在是既支持 Subversion 又支持 Git 托管。

囧。。鶿又把 GoogleCode 狠狠的模仿了一番。

闲话不多说上一个 VincentCode 的 Git 示例:

git clone http://code.brilliant.run/git/demo.git

如图:

所以,现在 code.brilliant.run 的代码托管分为两大分支。

一个是:        http://code.brilliant.run/svn/    主要负责 SVN 方式的代码托管。

另一个是:    http://code.brilliant.run/git/    主要负责 Git 方式的代码托管。

至于 SVN 方式的使用 看我上篇文章 就OK。

本以为让一台服务器同时支持 SVN 和 Git 会比较麻烦。

尤其像鶿这种 “前端Nginx+后端Apache” 的架构下,要实现同时支持 SVN 和 Git 的,基于HTTP(S) 协议的SVN+Git服务器会更蛋疼。

不过也只是麻烦,难度不大,只是像鶿这样全手工打造的VPS,调戏起来要比较有耐心。

好吧,今后如果鶿要发布点儿什么,或者为大家提供代码托管的话。

喜欢 SVN 的同学就去:    http://code.brilliant.run/svn/

喜欢 Git 的同学就去:    http://code.brilliant.run/git/

欲知详情,请步移:        http://code.brilliant.run/

最后,对于鶿来说,还是首选 SVN 啦^_^

About Mucid

My life is brilliant !
This entry was posted in Technology and tagged , , , , , , . Bookmark the permalink.

56 Responses to VincentCode新增Git版本控制

  1. 減肥 says: Google Chrome 9.0.587.0 Google Chrome 9.0.587.0 Windows 7 Windows 7

    看得满山汗,