2012-03-03 3 views
6

Я хотел бы реализовать задачу Rake, которая автоматизирует некоторые задачи, которые я должен выполнить, чтобы перенести мои изменения с разработки на производство (и да, я знаю, что есть что-то вроде Capistrano, и это слишком много для меня) , В центре есть несколько интерактивных команд, таких как git add -i и серия фиксации и нажатия. На стороне производства будут выполняться задачи по переносам и активам.Что такое лучший рубиновый api для git?

Довольно утомительно вводить все те же команды, чтобы я полностью автоматизировал его. То, что я не нашел, - Ruby API для Git.

Он должен работать под Windows 7, и позволяют по крайней мере, следующие команды: git add, git status, git commit, git push, git pull.

+0

Если capistrano слишком много, подумали ли вы об использовании рейка? – zsquare

+0

Хорошо, что я спросил в вопросе: я хотел бы реализовать задачу Rake ... Итак, часть, которую я пропускаю, является разумным Git API для Ruby. – mliebelt

ответ

5

This one, кажется, довольно популярен. Если вас больше интересует GitHub, вы можете посмотреть на this one.

UPDATE:

Rugged кажется новейший один там, хотя Gem для него не был построен в то время. Лучше всего использовать источник из Github.

+0

Но это довольно старый (2,5 года никаких изменений вообще). Каков ваш опыт в этом. Является ли API разумным, вы использовали его под Windows? – mliebelt

+0

Извините, взгляните на мое обновление. Я не использовал ни одного из них, поэтому было бы трудно ответить на комментарий разумности. – ScottJShea

+0

После некоторых экспериментов [Git] (https://rubygems.org/gems/git) представляется разумным: он работает в моей консоли «rails c» и имеет функции, которые я хочу. – mliebelt

10

Я знаю, плохая привычка, но я хотел бы задокументировать опыт этого уик-энда:

  • Существует аналогичный вопрос о https://softwareengineering.stackexchange.com/questions/62843/best-ruby-git-library, что именует 3 соответствующих кандидатов: Git, Grit и Rugged.
  • Git and Grit дальше не разработаны, Прочный в настоящее время разработан, но не закончен.
  • Git работает из коробки, но имеет некоторые недостатки:
    • Там известные недостатки (см issues).
    • У меня возникла проблема, что добавленные и измененные элементы не соответствуют друг другу, они могут находиться только в одном из двух состояний (что не соответствует действительности для Git в настоящее время).
    • API является разумным и хорошо работает в консоли, Ruby-скрипте или задании Rake.
  • Грит не работал для меня вообще, и я не нашел причину. Я получил трассировки стека (низкоуровневые) и попробовал несколько патчей, которые могут быть релевантны для использования под Windows 7, но без успеха.
  • Прочный не может быть установлен для меня, поэтому я filed a bug прочный, который получил некоторую обратную связь. Проблема в том, что она работает только для POSIX-систем, поэтому она не компилируется с DevKit для Ruby.

Поэтому я попытаюсь найти скомпилированную версию libgit2.dll для Windows 7 и попытаюсь использовать ее. Я сделал это в прошлом с sqlite3.dll, так что, возможно, это лучшая попытка. Для меня прочное решение является самым разумным, потому что есть люди, стоящие за этим проектом, они заинтересованы в предоставлении решения, которое работает на кросс-платформе.

1

июля 2013 обновление:

Похоже Rugged является инструментом выбора в данный момент.Он активно поддерживается, и похоже, что большинство (всех) основных коммиттеров работают в github.

Хотя grit является самым популярным и создан одним из основателей github, он не был тронут в течение 5 месяцев и не имел активности.

Для получения более подробной информации см. Ruby-Toolbox.

Смежные вопросы