1. 程式人生 > >強大的Git客戶端:SourceTree外掛開發指南

強大的Git客戶端:SourceTree外掛開發指南

SourceTree是什麼?

簡單來說SourceTree是一款免費git圖形化操作軟體,功能很全,使用起來非常方便,相信不少開發者已經在使用這款軟體。

具體還是來看看網上的介紹:

SourceTree是Windows 和Mac OS X 下免費的Git 和Hg 客戶端,擁有視覺化介面,容易上手操作。 同時它也是Mercurial和Subversion版本控制系統工具。 支援建立、提交、clone、push、pull 和merge等操作。

簡單說一下我的感受,一開始使用git的時候,基本上都是直接敲命令的,(沒有好的軟體,只能自我安慰使用命令列對學習git更有利,苦逼的程式猿~),也不知道有什麼GUI軟體比較好用,直到後來知道了SourceTree,使用上一段時間就徹底離不開它了,功能強大,介面漂亮,用起來順手,跨平臺,還持續更新,最重要的是免費,你沒看錯,是免費(重要事情說兩遍~就可以了),有中文版本(雖然我不喜歡用中文版,目前還是用的英文版,原因是中文版看不出來對應的git命令是什麼,個人建議大家也用英文版)。

鄭重宣告一下,這篇文章不是軟文。(如果SourceTree的作者看到這篇文章覺得不錯的話…,可以和我聯絡,我這裡可以接收美金,怎麼聯絡到我?可以點選檢視我的個人資訊,微信,主頁,郵箱都可以,好吧,我承認我想多了)。

今天所說的外掛開發,實際上是SourceTree一個叫Custom Action的功能,SourceTree從v1.3開始就增加了這個功能,這個功能可以讓我們可以新增自定義的擴充套件動作,也就是我們經常說的外掛,下面就用實際例子來讓大家看看在實際中可以做些什麼。

開始動手

加入Open In Sublime Text 2功能

舉第一個栗子,我們可以使用Sublime Text 2開啟當前選中的檔案。

以下下步驟以英文版為準,中文版的請自行翻譯…

Custom Actions 頁面點選Add新增一個名為 Open In Sublime Text 2 的動作,右邊的編輯框可以新增快捷鍵,接著拷貝下面程式碼到 Script to run 編輯框中

/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl

Parameters新增 $FILE, 最後點選OK儲存。
新增好的介面是這樣子的:

SourceTree

至此,我們已經成功實現了這個功能。使用的時候只要選中要開啟的檔案,點選右鍵 Custom Actions > Open In Sublime Text 2

即可。

SourceTree

加入Open Workspace和Open Xcodeproj功能

接下來,我們再來做一個稍微複雜點的栗子。

每次開啟SourceTree的倉庫列表或者進入倉庫的時候,如果我們要開啟這個倉庫的專案檔案,還得先去到這個專案的資料夾找到後再開啟,如果有一個功能可以直接點選一個按鈕就可以自動找到並開啟這個倉庫裡面所有的xcworkspace或者xcodeproj檔案就好了,值得慶幸的事,我們可以做到這樣的外掛,具體做法如下:

  1. 新建一個自定義動作分別填入下面內容

    • 開啟xcworkspace檔案
欄位名 內容
Menu Caption Open Workspace
Script to run /bin/bash
Parameters /Users/.../open_xcode_project.sh $REPO xcworkspace
  1. 再新建建一個自定義動作分別填入下面內容

    • 開啟xcodeproj檔案
欄位名 內容
Menu Caption Open Xcodeproj
Script to run /bin/bash
Parameters /Users/.../open_xcode_project.sh $REPO xcodeproj

3. 新建一個名為open_xcode_project.sh檔案,路徑和上面的路徑一致:/Users/.../open_xcode_project.sh,路徑是你自己定的,不要和我一樣也加...,內容如下:

#倉庫路徑
REPO_PATH=$1
#檔案的型別
OPEN_TYPE=$2

#判斷開啟專案檔案的型別,根據型別篩選出專案檔案路徑
if [ $OPEN_TYPE = "xcodeproj" ]; then
    LIST=`find $REPO_PATH -name "*.xcodeproj" | grep -v "Pods.xcodeproj"`
else
    LIST=`find $REPO_PATH -name "*.xcworkspace" | grep -v ".xcodeproj/project.xcworkspace"`
fi

for ITEM in $LIST
do
#開啟專案檔案
open $ITEM

done

上面用到的 open_xcode_project.sh 檔案我已經上傳到github,傳送門:SourceTree Custom Action

完成上面這幾步後,在倉庫右鍵就可以看到新新增的兩個功能,如下圖,點選對應的功能程式就會自動開啟該倉庫下的專案檔案,不得不說太方便了!滿滿的成就感有沒有!

SourceTree

不難看出,這個外掛主要是通過shell指令碼來完成,把倉庫的路徑和開啟檔案的型別傳給指令碼來進行處理,指令碼過濾出目標的檔案路徑並依此使用預設的軟體(也就是Xcode)來開啟專案檔案。

最後

這篇文章只是拋磚引玉,你可以做到更多更棒的功能,只要你對shell命令足夠熟悉,當然,想法最重要,如果有好的想法歡迎你共享出來,只有分享才能相互進步。

另外,我建了一個SourceTree的Custom Action github倉庫:SourceTree Custom Action,希望有志之士(說的就是你)一起來維護,來給我pull request吧。希望看到不久的將來我的SourceTree的Custom Action選單滿滿的都是各種各樣的功能。

The End.