2014-09-30 19 views
2

我想編寫一個ruby腳本,它是一個命令行工具,它將標記ID作爲參數,然後運行「git checkout tag_id」的等效命令。然後我會使用rsync將檢出的目錄推送到服務器。我查看了崎嶇的寶石和Git寶石,但他們似乎以一種不直觀的方式與git進行交互。我應該只是使用系統調用還是有更多的紅寶石方式來做我想做的事情?使用紅寶石在git中籤出標籤?

我從[email protected]/company/this_repo.git克隆了/ User/git_repo。手動我會「git fetch --tags」,然後「git checkout tag_id」。我想然後rsync結果到服務器。

+0

如果它是一個命令行工具,那麼你爲什麼不在非ruby腳本中使用git命令? – jmruc 2014-09-30 20:38:00

+0

我想將它包裝在一個腳本中,這個腳本需要標籤id,git倉庫,服務器等參數。我也希望能有一些紅寶石,讓我能夠處理回購和標籤本身的問題。更不用說我想要處理rsync過程了。 – numb3rs1x 2014-09-30 20:41:56

回答

3

還有ruby-git寶石 - 用$ gem install git安裝它。它處理系統的命令行調用 - 這裏是爲Ruby> = 1.9的例子:

require 'git' 

g = Git.init 
     Git.init('project') 
     Git.init('/home/schacon/proj', 
     { :repository => '/opt/git/proj.git', 
      :index => '/tmp/index'}) 

g.fetch 

g.checkout('tag_id') 

您可以從g.tags獲得標籤的數組。我會用這個寫我自己的系統調用,因爲這個回購似乎目前維持(最後一次提交two days ago)。