有趣的程式碼版本視覺化顯示工具:gource

「gource」是一個用來把軟體版本控管的紀錄視覺化的工具,他的網站是:http://code.google.com/p/gource/,下面是他的展示影片:

他基本上是以樹狀結構的演化形式、來用動畫的形式展示一個專案的修改紀錄。裡面每一個點(leaf)都是一個檔案、而每一群點都是一個資料夾(branch);而不同的顏色應該是根據附檔名來做標示的,當滑鼠移到點上後,就可以看到檔案名稱等資訊了。

在動畫的過程裡面,會看不開發者不停地移動、去存取某些檔案~當把一個專案的演進用這種方法從頭看到尾,算是非常地有趣啊!尤其是一口氣建立很多檔案的時候,看起來就像耶火一樣啊~ XD

在網站上有植貼提供編譯好的程式,有興趣的可以下載來、自己玩看看~目前最新的版本是 0.41、Windows 平台的檔案下載是:gource-0.42.win32.zip,解壓縮後就可以用了。

而他目前支援的版本控管系統包括了:Git、Mercurial、Bazaar、SVN;不過由於他也支援 log 檔,所以像是 CVS 也可以透過匯出 log 檔的形式,來讓 gource 來讀取(參考)。

他的基本執行,就是透過指定資料夾讓他去該資料夾下的專案紀錄,並拿來做顯示;例如:

gource.exe d:\Heresy\OpenNI

而其中,「d:\Heresy\OpenNI」就是有版本控管的專案資料夾。不過由於 gource 在分析專案紀錄時,會需要透過版本控管系統本身的程式(例如 git.exe、svn.exe)來讀取紀錄,所以在解壓縮後、要執行時,還要做一些環境的調整、設定。後面 Heresy 有自己針對在 Windows 下,要對 Git 和 SVN 的專案做分析的方法,做簡單的說明。

另外,在執行的時候,除了指定資料夾外,也還有很多額外的參數;使用上完整的說明,可以參考該程式資料夾下的 readme.txt、或是直接執行「gource -H」來看說明。如果是要做自己的專案展示的話,也可以指定背景圖、以及 logo 等等額外的東西。

在執行的時候,則可以用滑鼠左鍵來拖拉顯示範圍、用滾輪或是鍵盤數字鍵區的 /- 來控制縮放。其他可能比較實用的按鍵說明包括了:

  • V:切換攝影機模式
  • K:顯示各種附檔名對應的顏色、以及統計
  • N:跳到下一筆日誌
  • /-:控制速度(藥用主見盤區、也就是壓著 shift 按 -/=,數字鍵盤區的應該是縮放)

另外,如果把滑鼠移到畫面下方,回有一個白色的長條出現,那是代表時間軸;在用滑鼠點選時間軸後,整個樹狀結構就會從該時間點開始重長。


for Git

如果是要顯示 git 的 repository 的話,首先電腦上要有 git 的執行檔。Heresy 這邊用的是「msysgit」(連結),下載安裝後,預設的執行檔位置應該會是在「C:\Program Files\Git\bin」。

而要執行程式的話,Heresy 自己玩了一下後…是覺得下面的執行方式,可能不是最好的方法,但是基本上是不需要複製檔案的執行方法。

首先,就是先開一個命令提示字元的視窗,然後執行:

cd /D "C:\Program Files\Git\bin"
set path="C:\Program Files\Git\bin"
d:\gource\gource.exe --path d:\Heresy\opencv-src

其中,「d:\Heresy\opencv-src」就是 Git 專案所在的位置。而黃字的部分,則是視自己的檔案配置做調整。

執行順利的話,他就會顯示出這個專案的版本演進動畫了~

基本上,他目前應該只支援本地的 git repository,所以不能直接看 GitHub 上的專案;如果想看的話,就必須要先 clone 下來。

另外,Git 預設似乎只會顯示當下的 branch,如果要顯示不同的 branch 的話,需要在執行時透過「–git-branch」來指定要視覺化的 branch。


for SVN

SVN 的話,Heresy 這邊是使用「TortoiseSVN」(官網)。不過由於 TortoiseSVN 預設不會安裝命令提示字元下的工具(command line client tools),所以在安裝的時候,需要特別把把這項選起來,才會有「svn.exe」可以用。而安裝好了之後,他預設的執行檔路徑會在「C:\Program Files\TortoiseSVN\bin」。

要執行的話,一樣是開啟一個命令提示字元視窗,然後執行:

cd /D "C:\Program Files\TortoiseSVN\bin"
set SVN_SSH="C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe"
d:\gource\gource.exe --path D:\Heresy\Project

這樣就可以了。

其中,「D:\Heresy\Project」是 SVN 的專案目錄。而由於 Heresy 這邊的 SVN 是 svn ssh 的,所以還必須要指定建立 tunnel 的程式,也就是是上面的第二行;如果是走其他方式的話,或許會有不同的設定,不過這個 Heresy 就沒有玩了。


這邊大概就是這樣了。至於其他的 SVC 由於 Heresy 沒有在用,所以也就沒有玩了。

至於實用性呢…說實話,個人只會覺得看起來很炫啦~但是真的要講實用性…Heresy 到還沒想到要怎麼用…

比較可能的應用,或許是用來作展示用吧?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。