SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:进入论坛最新公告最新公告
搜索: 您的位置主页>SVN使用>讓龜速的SVN變身忍者神龜 - SVN加速

讓龜速的SVN變身忍者神龜 - SVN加速

2008-06-25 22:35:07   来源:   作者:   【 评论:0 点击:
1、假定條件

  假定妳熟悉SVN
  如若妳的版本管理工具只是個人使用,不涉及多人使用的,可以直接忽略本文,去做更有意義的事情吧!

2、起因

  SVN雖好,對於少於1萬個源碼文件的項目速度上還算是可以的,但一旦源代碼文件超過1萬個以上,甚至達到10萬個源文件或以上,使用SVN修改區區一個源代碼根目錄下的README文件,然後提交,提交的時間就足夠妳去煮一壺100攝氏度的開水再沖一杯純正的綠茶,喝完,說不定還可以美美地睡一覺~~當然,比起CVS來說,這速度已經算是自行車與摩托車的區別了,但與Git等神速的分佈式版本管理系統來說,就只有兩個字——烏龜-_-!噢!我忘記了,這情況僅發生在非使用本地協議(file://)的情況下——當然,既然是多人使用的版本庫,估計沒什麼理由使用本地協議吧?
  多人使用的版本庫,一般是通過svn:// 、http://、https://、svn+ssh://這幾種協議來讀寫的,但我們知道,通過網絡的來讀寫,其速度很難達到跟本地文件的速度,畢竟啥東西一發到網絡上,就得視乎於網絡速度了,況且估計現今網絡的速度還沒能比硬盤的直接讀寫快吧?
  在此之前,我曾經考慮過換用其它的版本管理系統,例如Git、Mercurial(HG)、Bzr……但各個版本庫都有不盡人意的地方,例如Git雖然速度快則快矣,但沒有一個完全比得上TortoiseSVN的界面,對於像我這種能躺著就絕不坐的人來說,首先否決了這個。Mercurial(HG),一個非常好的分佈式版本管理系統,速度令人滿意,而且有TortoiseHG這樣的界面工具,但可惜的是當我決定把SVN的代碼轉到其上時,發覺目前沒有一個軟件能完全正確的把SVN項目所有記錄轉到其上的工具,嘗試過幾個Python的腳本如Hgsvn等,都不能正確的把項目轉過去,英文的項目還可以,碰到中文標注的項目就死了,於是只好放棄。其它的也是有這樣或那樣的問題,沒有一個像TortoiseSVN那樣的整合工具(TortoiseMerge、TortoiseDiff……)。

3、原理

  於是我轉而考慮能否給SVN加速?思前想後,唯一能提速的方法就是使用本地協議了,但使用本地協議,問題就來了,如何去處理網絡共享的問題?通過網絡協議幾乎是必定的選擇,那怎樣通過本地協議來加速?這時靈光一閃,想到了前段時間搞過的SVK。
  SVK是基於SVN的分佈式版本管理系統(實際上算是SVN的一個外殼)。通過SVK我們可以建立網絡版本庫的一個鏡像,並通過TortoiseSVN使用本地協議來管理本地分枝!!
  SVK的使用請參考我的另一篇文章 [
 
分佈式版本控制系統SVK搭配TortoiseSVN的使用 ]
  注意:使用本地協議時,在Windows上的本地協議格式是(
file:///d:/svnlib/myproject ),留意那個
file:///,是三個反斜槓,一般很容易忽略這個問題導致老是連不上的!

4、實例

  我其中一個項目擁有9453個文件,原來採用的是SVN://協議,每次我修改源碼(Trunk根下的文件)後提交,不得不等待SVN10來20分鐘來檢查文件修改(一般這時候我就會拿杯茶傻傻地望著那個對話框發呆)。使用SVK配合SVN外加本地協議模式後,幾乎一點,修改過的文件就出來了,速度可以跟Git有得一拼了……這樣子我那一大堆的SVN管理的的項目就不用轉Git了。
 



录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部