聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

八月 9, 2007
» Benchmarking SCMs via import linux kernel source.

Maybe someone would interested, so I posted the results here:

(Benchmarking on a p4 3.4G SMP debian stable-etch, 2giga ram machine, all SCM software use packages from debian stable, checkout/branch occurs on localhost)

conclude:

initial speed: hg==git(3Min) >> bzr(15Min) >> svn(71Min)

checkout/clone speed: hg == git(3Min) >> svn(11Min) >> bzr(21Min)

space effiency: hg==git(123Mb) >> bzr (230Mb) >> svn(repo:82Mb+workingdir:573Mb = 655Mb)

== report ==

hg:
/usr/bin/time -o ../hginit.usage hg init
/usr/bin/time -o ../hgadd.usage hg add .
/usr/bin/time -o ../hgcommit.usage hg commit -m "first import"


real 3m25.284s
user 0m34.130s
sys 0m4.868s

git:
/usr/bin/time -o ../gitinit.usage git init-db
/usr/bin/time -o ../gitadd.usage git add .
/usr/bin/time -o ../gitcommit.usage git commit -m "first import"


real 3m20.346s
user 0m23.061s
sys 0m5.032s


bzr:
/usr/bin/time -o ../bzrinit.usage bzr init
/usr/bin/time -o ../bzradd.usage bzr add .
/usr/bin/time -o ../bzrcommit.usage bzr commit -m "first import"

real 15m10.689s
user 1m59.299s
sys 0m9.617s

svn:
svnadmin create --fs-type fsfs /home/tim/test/testsvnrepo/
svn import -m "New import" linux-2.6-2.6.18.dfsg.1 file:///home/tim/test/testsvnrepo/


real 71m3.704s
user 0m53.467s
sys 0m24.998s

#### Checkout/Branch(Clone) time ####


#time bzr clone linux-2.6-2.6.18.dfsg.1/ testbzrclone
Branched 1 revision(s).

real 21m5.351s
user 1m38.898s
sys 0m11.465s

# time hg clone linux-2.6-2.6.18.dfsg.1/ testhgclone
20690 files updated, 0 files merged, 0 files removed, 0 files unresolved

real 3m15.951s
user 0m12.449s
sys 0m4.016s

#time git-clone linux-2.6-2.6.18.dfsg.1 testgitclone
remote: Generating pack...
remote: Done counting 21351 objects.
remote: Deltifying 21351 objects.
remote: 100% (21351/21351) done
Indexing 21351 objects.
remote: Total 21351, written 21351 (delta 2213), reused 0 (delta 0)
100% (21351/21351) done
Resolving 2213 deltas.
100% (2213/2213) done
Checking files out...
100% (20323/20323) done

real 3m27.516s
user 0m59.908s
sys 0m5.132s

#time svn co file:///home/tim/test/testsvnrepo/ testsvnco
Checked out revision 1.

real 11m44.980s
user 0m35.294s
sys 0m15.849s


####SPACE USAGE ####

123M linux-2.6-2.6.18.dfsg.1/.hg
123M linux-2.6-2.6.18.dfsg.1/.git
230M linux-2.6-2.6.18.dfsg.1/.bzr
82M testsvnrepo
573M testsvnco


Note: I've installed bzr 0.18, and results shows no big difference.

六月 14, 2007
» [link] Mark Shuttleworth on VCS. 馬克·沙特爾沃思先生談論版本控制系統

馬克·沙特爾沃思(Mark Shuttleworth)先生 -- 如果你不知道我在講誰的話....

就是世界第二位平民太空人,早期debian開發者跟Ubuntu創辦人啦...

他的blog上談論了他對VCS的一系列看法.

Choose Lossless VCS tools if you have the luxury

Further thoughts on version control

Renaming is the killer app of distributed version control

我讀了一下他的觀點大概就像這樣...

"""
VCS最重要的功能就是renaming, 而bzr把renaming視為非常重要的功能,
不管你的目錄怎麼搬, branch怎麼merge, bzr就是玩不爛.

bzr就像raw-format, 什麼都紀錄所以速度較慢但是卻可以無損轉換成其他格式...
在不同的情形不同的狀況下, 都可能有不同的最佳VCS工具.
何況世界變化很快, 從tarball, RCS到CVS到SVN...
現在很明顯的又進入到了分散式VCS的戰國時代,
而過一陣子搞不好又有更新更好的工具.

所以... 就像你最寶貝的片子/照片(通常)會存個無損RAW檔一樣,
bzr什麼都給你記下來, 當你真的需要在特定環境作特定應用而bzr辦不到的時候,
可以很快轉換過去.

"""

當然底下的評論自然有darcs眾,水銀黨(hg)跟git幫要戰mark...
這個就跟我沒關係了...
我只是普通用戶一枚,
反正這個系列的文章可能還會繼續下去,
就等著隔山觀虎鬥, 爆米花買好, 戰的好記得出來拍手就好了.... XD

四月 24, 2007
» 新的版本控制軟體? mercurial

mercurial 是一套Distributed式的版本控制軟體,而且也是python唷
中文翻譯就是水銀,指令當然就是hg囉...

比起以往的SVN或是SVK(由clkao設計的版本,這次在2007 OSDC.tw有精彩的演講)
SVN 把檔案全部放在.svn目錄,而且是每個檔案都有

SVK把檔案放在~/.svk中,雖然檔案沒有亂丟,但是每次都會忘記,到底哪個檔案才是有svk紀錄的
在2007 OSDC.tw中,clkao展現了,有一個類似proxy的機制,我忘了叫什麼,
但的確解決當初我在公司會遇到,每個人都要checkout,然後頻寬塞爆的問題

那...介紹一下hg..
目前我看到的特色是,他把每個控制的檔案,放在最底層的.hg,這樣的設計方式,簡單且不失便利性
另外,在project管理方面,是每一個project一個repertory,這樣的管理方式就不會動不動就千筆資料
當然SVK再與其他SCM的整合度上沒話講

hg如同許多python的工具都同時具備,cgi模式與server直接啟動httpd
線上文件的http://www.selenic.com/mercurial/wiki/index.cgi/PublishingRepositories有提到
不過我不是用 rewrite的方式,我是用 ScriptAlias /hg /foo/hgwebdir.cgi
另外在/foo目錄下要有一個hgweb.config的檔案,並設目錄如
[paths]
network/ns-3 = sources/network/ns-3



也有很好的線上書
http://hgbook.red-bean.com/hgbook.html

另外大個project都跟進了(mozilla 2)
那...我還需要遲疑嗎?

A Feedjack powered Planet
A Django site.