顯示具有 SCM 標籤的文章。 顯示所有文章
顯示具有 SCM 標籤的文章。 顯示所有文章

星期二, 五月 27, 2008

在Vista用hgsvn、git-svn失敗

今天浪費了兩個小時試著在Vista上使用mercurial與git,雖然程式裝起來,但hgsvn與git-svn抓取svn repository都遇到奇怪的錯誤。msysgit也不如預期,後來雖然裝起cygwin,但仍告失敗。

結論:在Windows上仍然以subversion最成熟,其他的工具仍然有待考驗。

星期一, 五月 26, 2008

Ubuntu git初探

今天有事情早回家,抽空在家裏的Ubuntu 8.04 amd64上裝了git。
sudo apt-get install git git-svn gitk qgit
git-svn clone [svn的url]
與hg同樣會複製repository。再來用gitk的畫面與hg view差不多,qgit則好看多了。

說實話,git與hg的速度都很快,大小似乎也差不多。目前mercurial的GUI比較多,先利用svn repository平行測試一段時間好了。

Ubuntu mercurial初探

今天有事情早回家,抽空在家裏的Ubuntu 8.04 amd64上裝了mercurial。
sudo apt-get install mercurial qct hgsvn tcl tk8.5
qct是為了要有hgk的功能。

但是仍然有問題,查了一下是Debian的設定檔問題,在/etc/mercurial/hgrc.d/下,把qct.rc裏
hgext.qct =
加上#註解成為
#hgext.qct =
還有hgext.rc裏
hgext.hbisect=
改成
#hgext.hbisect=
再編輯~/.hgrc,內容為
[extensions]
qct=/usr/bin/qct
hgk=/usr/bin/hgk
應該是找不到hgk,在有,記得要chmod +x。

目前安裝hgsvn後已經可以匯入subversion的repository,正在測試Netbeans中...

註:Windows使用者建議裝TortoiseHg

星期四, 五月 22, 2008

想換SCM了

看了jserv老大的「我愛 Git」簡報後,就想換掉效率不彰的svn。

根據Benchmarking SCMs via import linux kernel source,再考慮到公司仍然在Widnows平台,水銀Mercurial似乎比git適合我,至少有比較多的GUI工具呀(而且我不喜歡cygwin的console,中文常亂碼)。

Update:gslin提到git-svn,想想一定也有hgsvn,我可以快速先試試呀!

Update:看到Git on MSys,又有點搖擺不定了...

星期二, 三月 25, 2008

另一個版本控制軟體--Mercurial

在下載OpenJDK時無意中發現OpenJDK已經轉換用Mercurial版本控制。有個很詳細的手冊在Distributed revision control with Mercurial

根據手冊上Mercurial compared with other toolsMercurial針對Subversion merge超弱這點有改進,害我也有點想跟進,有空得來看看這個Python寫的版本控制軟體。(我還不確定Mercurial能不能稱為SCM

參考:Converting from Subversion to Mercurial

星期五, 十一月 24, 2006

Subversion同時使用兩個Repository

Subversion應該沒有支援Dual Repository的機制,由於平時偷懶把自己寫的幾支程式都放在同一個Repository,需要分享時就很麻煩。原本想利用Apache的虛擬目錄 Alias 的方式達成,但目前看來不可行;再使用mod_proxy的方式也有權限問題,無法達成目標。

所以我利用 Subversion 1.3版開始非正式支援SVN_ASP_DOT_NET_HACK變數,就可以在同一個目錄下有兩個不同的Repository。
The "_svn" hack is now officially supported: since some versions of ASP.NET don't allow directories beginning with dot (e.g., ".svn", the standard Subversion working copy administrative directory), the svn command line client and svnversion now treat the environment variable SVN_ASP_DOT_NET_HACK specially on Windows. If this variable is set (to any value), they will use "_svn" instead of ".svn". We recommend that all Subversion clients running on Windows take advantage of this behaviour. Note that once the environment variable is set, working copies with standard ".svn" directories will stop working, and will need to be re-checked-out to get "_svn" instead.
雖然麻煩一點,但就是在命令列切換:
C:\MyAp>set SVN_ASP_DOT_NET_HACK=1
C:\MyAp>svn commit
C:\MyAp>set SVN_ASP_DOT_NET_HACK=
C:\MyAp>svn commit
或者做成批次檔切換變數。

請注意:此特性只有在Win32平台有效,在source如main.c有特別定義:
#if defined(WIN32) || defined(__CYGWIN__)
/* Set the working copy administrative directory name. */
if (getenv("SVN_ASP_DOT_NET_HACK"))
{
err = svn_wc_set_adm_dir("_svn", pool);
if (err)
return svn_cmdline_handle_exit_error(err, pool, "svn: ");
}
#endif
所以若要在其他平台有此功能,必須修改source code再自行編譯。剛才確認在1.4.2版共11個檔案要修改。

星期五, 十一月 10, 2006

Subversion 1.4.2 was Released

Subversion更新得很快,可惜Binary並未跟進,其他project如TortoiseSVN、RapidSVN也都沒有更新。 若要自己抓source下來編輯,需要不少套件,都寫在原始碼的INSTALL裏,看了一下實在是很麻煩,所以在公司我仍舊使用Subversion 1.4.0。

FreeBSD的ports已經更新到1.4.2,如果那一天公司願意改用FAPJ(FreeBSD、Apache、Postgresql、Java)開發,我就可以裝一台FreeBSD Desktop,只怕得等上100年。

星期一, 十月 30, 2006

Martin Fowler's Bliki 中文版

很久沒看Martin Fowler's Bliki 中文版,今天一看,發現最近都是好文章。

版本管理:最近快說破嘴,MIS都不肯用Subversion,無言...
更廣泛的版本管理 多台桌面電腦 讓版本管理遍地開花

Ruby:評估Ruby http://www.martinfowler.com/bliki/ruby.html
昨天去天瓏,沒找到Ruby的中文書,只有Ruby on Rails,殘念...

星期三, 九月 20, 2006

Subversion 1.4 was released

Subversion 1.4 已經發行,這次升級能夠讀取所有以往的repository,所以只要放心的裝下去就可以。新功能主要是svnsync的備份工具,以及支援Berkeley DB 4.4與auto recovery。
  • svnsync, a new repository mirroring tool
  • Huge working-copy performance improvements
  • Support for BerkeleyDB 4.4 and its "auto recovery" feature
  • Size improvements to the binary delta algorithm
  • A handful of new command switches
  • Many improved APIs
  • More than 40 new bugfixes
Subversion 1.4 Release Notes還有提到若dump再reload現有的repository,將會大幅縮小空間,有興趣的人不妨試試。

星期六, 五月 13, 2006

該全面換到Subversion

使用CVS(Concurrent Versions System)這個 VCS(Version Control System)將近十年,當初也是看在它跨平台而且不像VSS只能check out一份unlock。但CVS不支援rename,只能刪除新增,對於之前的版本就無法追蹤。另一個CVS的缺點是只看日期,而Subversion 是比對差異,因此CVS的許多問題不會在Subversion出現。

目前我有一部份程式是CVS與Subversion同時儲存但有些更新的問題,我打算找時間把CVS全換成Subversion,等到公司的TFS上線後,TFS專案會採用與Subversion並存的方式。