11.19 讓Git項目日誌也能動起來,炫起來!數據可視化利器Gource初探

開發的工作是繁忙而又充實的,每到項目階段性的收尾,看著一起奮鬥的兄弟姐妹們,心理也總會有些碎碎念,想著為這個項目留下點什麼特別的印象,收在項目的彙總報告裡也好,作為彼此的一種念想也好。

但苦於手邊沒有趁手的工具,當然,也不是沒有,而是在我的輕微的“完美”強迫症下,總覺得他們不夠“驚豔”,直到我偶然的發現了:Gource。

讓Git項目日誌也能動起來,炫起來!數據可視化利器Gource初探

先睹為快

不便於放上自己所進行的項目,就放上一段我用Gource製作的,關於開源軟件Blockly Game開發簡史的視頻吧。

怎麼樣?夠炫吧。從中,估計很容易就能看出來,Blockly Game項目,由始至終,最活躍的開發者,其實只有2個,他倆像小蜜蜂一樣,在代碼的花叢中穿梭。而2016年度,則應該是其開發的一個高峰期,可以看到,陸續有其他的一些開發者,也參與了進來。

安裝

Gource的官方站點為:https://gource.io/,在官網上,開發者非常貼心的為Windows下的用戶,提供了對應的安裝包,和可直接執行的壓縮文件包。

讓Git項目日誌也能動起來,炫起來!數據可視化利器Gource初探

下載對應的文件,並直接安裝(或解壓縮到相關文件夾下),即可開始使用。

而MacOSX用戶,則推薦直接使用brew進行安裝

brew install gource

當然,你也可以選擇自行通過源代碼進行編譯安裝,Linux/MacOSX下,比較簡單,就是非常典型的./configure、make & make install,Windows下,則最好使用Qt Creator進行編譯,因為,其Windows版本是在這一IDE環境下進行開發的。

最簡使用教程

Gource是一個命令行的工具,內置支持Git,Mercurial,Bazaar和SVN項目日誌的可視化動畫生成。

這對我來說是足夠了,事實上,現在我的項目,全部是使用Git進行管理的,但如果你的項目,恰好使用的是CVS這樣的版本管理系統,那麼,Gource也提供了一個腳本:cvs2cl,可以將CVS日誌,輸出轉換為Gource能夠讀取的日誌形式。

而使用Gource的最簡單方式,則是在進入到對應的項目目錄後,在命令行下,直接輸入:

gource

是的,就這麼簡單,之後,Gource會彈出一個窗口,並在其中,按照時間順序動態展示整個項目,就好像我剛剛視頻所展示的那樣。

多一點參數

Gource有很多的參數可以使用,具體可以參見他的官方Wiki文檔,在這裡,則揀幾個我覺得重要的,稍微說下。

-s 秒數 : 設置在視頻中,每天以秒為單位的仿真速度,默認是10秒。

顯然的,如果這是一個時間跨度相當長的項目,並且你希望從頭到尾的展示下整個開發過程,那感覺一定是非常“酸爽”的,比如那個《Blockly Game開發簡史》。

幸好,Gource有-s參數,並且,可以支持小數,比如:0.03這樣的。

-a 秒數 : 項目中,總會有那麼一些日子,或者幾天、或者幾周,沒有什麼日誌的提交。為了避免視頻中,出現這樣的停頓,可以通過-a參數,來設置遇到這種情況時,Gource前進到下一個條目時的時間間隔,默認為3秒後。

和-s一樣,-a也支持小數。

輸出視頻

至少在我看來,輸出視頻,是我最需要的一個功能。Gource並沒有直接提供輸出常見視頻格式的功能,相反的,我們可以首先通過使用 -o 選項,從Gource窗口中,捕獲原始視頻,並保存為PPM格式文件。

之後,則推薦使用視頻編碼器ffmpeg,來進行後續的處理,以最後生成我們所需要的視頻,比如mp4。

讓Git項目日誌也能動起來,炫起來!數據可視化利器Gource初探

當然,在適當的參數幫助下,強大的ffmpeg還能幫助我們輸出其他各種格式的視頻,從webp,到gif,不一而足。

這幾乎又是另外的一個話題了,在這裡就不展開了。

更多一點

還記得我剛剛提到的 cvs2cl 腳本麼?是的,實際上,Gource除了可以自動的處理來自Git,Mercurial,Bazaar和SVN項目的日誌外,它還可以用來處理和生成任何符合Gource標準的日誌文件,也就是說,Gource提供了一種可以將任何類似的日誌數據,進行可視化動畫展示的方式,日誌文件寫作的規範如下:

首先,每條日誌佔據1行

其次,每條日誌,一共可包含5個選項,選項和選項之間,使用半角的豎線('|')進行分隔,這5個選項分別是:

  • 時間戳 : 使用UNIX時間戳表示,代表該日誌發生的時間
  • 用戶名 : 進行相關操作的操作者名稱
  • 操作類型 : 對資源的操作方式,Gource一共規定了3種,分別是 : A : 增加資源;M : 修改資源;D : 刪除資源
  • 資源名 : 所對應操作的資源的路徑名稱,因為Gource事實上並不檢測任何內容,因此,實際上,這裡可以寫任意你想寫的內容
  • 顏色 : 16進制(FFFFFF)格式顏色說明,用於生成資源對應的顏色(可選)

是不是有一點心動?馬上試一試吧?


分享到:


相關文章: