SmartSVN and SVNKit ( JavaSVN )

今天因為學弟的 TortoiseSVN 在 Windows 上遇到了 Windows 千奇百怪錯誤訊息 之一的 "沒有錯誤發生" ( "No Error Occurred" ) 訊息, 不管怎麼處理移除重新安裝都無法使用, 我就幫忙找了是否有其他的 Subversion Client 軟體.

之前在 Windows 上用 TortoiseSVN, 在 Mandriva 下直接用 command line 都習慣了, 也就沒有想到去找其他的 Subversion Client Software 試用. 結果一找發現其實還不少, 只是都不如 TortoiseSVN 成熟以及容易使用, 只有幾個例外, 像是 eSVN 以及 SmartSVN. 因為學弟要在 Windows 上用, SmartSVN 採用 Java 開發, 安裝上會比較容易, 因此最後是採用 SmartSVN.

SmartSVN 分為 Foundation version, Professional version, 以及 Enterprise version. 在他的 downloads 可以下載的安裝檔案內其實就包含了 Foundation version 以及 Professional version, 但是 Professional version 的使用有限制時間的樣子, 而且需要向 SmartSVN 要求免費的 evaluation license. 如果只是一般的 svn check out, import, add, update 等等動作, Foundation 版本就足夠了.

SmartSVN 採用 SVNKit (JavaSVN) 作為 SVN library, 可以在 SVNKit 網頁下方看到使用 SVNKit 的相關計畫還真是不少, 除了 SmartSVN 還有需多著名的 IDE 也都有採用. 實驗室有些小計畫事實上跟 version control 多少有點關係, 之前好像都是透過 PySVN 處理, 有機會應該比較一下兩者的差異.

可以看到 SmartSVN 的畫面設計很簡潔清楚, 所有目前 working directory 的檔案會被列出來, 可以跟 TortoiseSVN 一樣直接對於檔案作各種 svn 動作處理. 同時 working directory 內的所有變動都會即時反應在檔案列表上. 檔案列表的各項欄位也很清楚地告訴你該檔案目前的狀態.

左下角是前幾次的動作歷史紀錄, 剛剛作過的所有動作都一目了然. 右下角是 Transaction 資訊,
會以每一次的 commit 為單位紀錄 transactions, 並且把過去的 transactions 都列出.


Transactions 的紀錄可以利用上面 toolbar 的 Transaction 項目進行整理, 分為 Raw, Week, Calendar, Author, 等方式, 更容易找到紀錄.


同時也提供對於檔案的 base - working copy 比較功能, 但是針對不同語言的程式碼似乎沒有 syntax highlight coloring 是比較可惜的一點.


SmartSVN 的其他進階好用功能都要在 Professional 本版以上才支援, 像是可以把版本變化作圖形化呈現的 Revision Tree 功能, 以及比起 TortoiseSVN 要強上許多的 Conflict Solver 功能, 甚至是可以知道特定檔案目前在其他 local copy 狀態的 Remote State 功能. 這些功能的基本說明跟圖示可以在 SmartSVN whitepaper 文件內看到.

Conflict Solver 所使用的 Three-Way-Merge 看起來應該是引入一個仲裁者的角色, 先將引起 Conflict 的兩端對於特定檔案的改變都 merge 在一起, 然後仲裁者 (也就是使用者) 利用比較視窗決定應該怎樣處理, 然後利用 SmartSVN 的簡易編輯器立即處理 Conflict.

Remote State 則是一個相當有趣的想法, 之前在其他的 version control tools 上好像沒有看到類似的想法. Remote State 讓使用者團隊在問題即將發生之前, 就藉由讓團隊成員看到文件的目前狀態, 以避免成員之間出現因為不知道彼此在作的動作而產生 Conflict. 這個想法搭配一些 project management tool 以及 instance message software 應該可以在 software implementation 以及 maintenance 階段產生更有效率的合作.

2 意見:

Wayne 提到...

Hi 我有興趣認識您, my email: wayne.armorize@gmail.com
我們做很多 parser research

seLain 提到...

wayne 看你的 mail, 是阿碼科技的員工 ? 不要告訴我你是阿碼的 CEO Wayne Huang, 那我可就嚇到了 :p

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger