2012-03-03 176 views
6

我想實現一個Rake任務,這個任務可以自動執行一些我必須做的任務,以便將我的更改從開發移植到生產(並且是的,我知道有像Capistrano這樣的東西,對我來說太過分了) 。在中心,有一些交互式命令,如git add -i和一系列提交和推送。在生產方面,將會有牽引和資產任務要做。什麼是最好的紅寶石api?

在所有的時間輸入相同的命令是很繁瑣的,所以我想完全自動化它。我沒有找到的是 Git的Ruby API。

應該在Windows 7下正常工作,並允許至少以下命令:git addgit statusgit commitgit pushgit pull

+0

如果Capistrano的實在是太多了,你有沒有想過用耙,而不是? – zsquare 2012-03-03 09:40:55

+0

嗯,我已要求在這個問題:我想實現一個Rake任務......因此,我缺少的一塊是Ruby合理的Git的API。 – mliebelt 2012-03-03 09:42:28

回答

5

This one似乎很受歡迎。如果你對GitHub更感興趣,那麼你可能想看看this one

UPDATE:

Rugged似乎是最新的一個在那裏雖然Gem爲尚未建成的一段時間。可能最好使用Github的源代碼。

+0

但它是很老的(2.5工齡完全沒有變化)。你的經驗是什麼? API是否合理,你有沒有在Windows下使用它? – mliebelt 2012-03-03 10:01:44

+0

對不起,看看我的更新。我沒有使用過它們,所以很難回答合理性評論。 – ScottJShea 2012-03-03 10:09:46

+0

一些實驗後,[混帳](https://rubygems.org/gems/git)似乎是合理的:它在我的'軌C'控制檯,並有我想要的功能。 – mliebelt 2012-03-03 12:46:12

10

我知道,壞習慣,但我想記錄本週末經歷:

  • 有上https://softwareengineering.stackexchange.com/questions/62843/best-ruby-git-library類似的問題名稱3名有關的候選人:GitGritRugged
  • Git和Grit沒有進一步開發,Rugged目前已經開發,但尚未完成。
  • 的Git開箱的,但有一些不足之處:
    • 有一些已知的缺點(見issues)。
    • 我有問題,添加和更改的項目沒有很好地匹配,它們只能處於2個狀態中的一個狀態(目前對於Git不是這樣)。
    • 該API是合理的,並在控制檯,Ruby腳本或Rake任務中運行良好。
  • Grit根本沒有爲我工作,我沒有找到原因。我獲得了堆棧跟蹤(低級別),並嘗試了一些可能與Windows 7下的使用相關的修補程序,但沒有成功。
  • 堅固不能安裝我,所以我filed a bug堅固耐用,得到了一些反饋。問題似乎是崎嶇只適用於POSIX系統,所以它不能與DevKit for Ruby編譯。

因此,我會嘗試爲Windows 7找到libgit2.dll的編譯版本,並嘗試使用它。我過去用sqlite3.dll這樣做過,所以也許這是最好的嘗試。對我而言,堅固是最明智的解決方案,因爲該項目背後有人,​​他們有興趣提供一種跨平臺的解決方案。

1

7月2013更新:

看起來Rugged是選擇此刻的工具。它正在積極維護,看起來像大多數(全部)核心提交者在github工作。

儘管grit是最受歡迎的,並且由github的創始人之一創建,但它在5個月內沒有被觸及並且幾乎沒有活動。

詳見Ruby-Toolbox