【问题标题】:What is the best ruby api to git?git 最好的 ruby​​ api 是什么?
【发布时间】:2012-03-03 09:39:32
【问题描述】:

我想实现一个 Rake 任务,它可以自动执行我必须执行的一些任务,以便将我的更改从开发转移到生产(是的,我知道有像 Capistrano 这样的东西,这对我来说太多了)。在中心,有一些交互式命令,如git add -i 和一系列提交和推送。在生产方面,会有 pull 和 assets 任务要做。

总是输入相同的命令很乏味,所以我想完全自动化它。我还没有找到 Ruby API for Git。

它应该在 Windows 7 下工作,并且至少允许以下命令:git addgit statusgit commitgit pushgit pull

【问题讨论】:

  • 如果 capistrano 太多了,你有没有想过用 rake 代替?
  • 嗯,我在问题中提出的要求:我想实现一个 Rake 任务......所以我缺少的是一个合理的 Ruby Git API。

标签: ruby git api windows-7


【解决方案1】:

我知道,坏习惯,但我想记录下这个周末的经历:

  • 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 下使用相关的补丁,但没有成功。
  • Rugged 对我来说是不可安装的,所以我filed a bug 到 Rugged 得到了一些反馈。问题似乎在于,rough 仅适用于 POSIX 系统,因此无法与 DevKit for Ruby 进行编译。

所以我会尝试为 Windows 7 找到 libgit2.dll 的编译版本,并尝试使用它。我过去曾使用sqlite3.dll 做到这一点,所以也许这是最好的尝试。对我来说,坚固是最明智的解决方案,因为这个项目背后有人,​​他们有兴趣提供一个跨平台工作的解决方案。

【讨论】:

    【解决方案2】:

    This one 似乎很受欢迎。如果你对 GitHub 更感兴趣,那么你可能想看看this one

    更新:

    Rugged 似乎是最新的,尽管Gem 因为它已经有一段时间没有建成了。可能最好使用 Github 的源代码。

    【讨论】:

    • 但它已经很老了(2.5 年没有任何变化)。你对它有什么经验。 API合理吗,你在windows下用过吗?
    • 对不起,看看我的更新。我没有使用过它们中的任何一个,因此很难回答合理性评论。
    • 经过一些实验,Git 似乎是合理的:它可以在我的rails c 控制台中运行,并且具有我想要的功能。
    【解决方案3】:

    2013 年 7 月更新:

    看起来Rugged 是目前首选的工具。它正在积极维护中,看起来大多数(所有)核心提交者都在 github 工作。

    尽管grit 是最受欢迎的,并且是由一位 github 创始人创建的,但它已经 5 个月没有被碰过,而且几乎没有任何活动。

    详情请见Ruby-Toolbox

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-08
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2010-11-22
      相关资源
      最近更新 更多