前几天用自己的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 啦^_^
看得满山汗,