Доморощенный: как использовать формулу из пулл-запроса - PullRequest
27 голосов
/ 31 августа 2011

Я новичок в GIT и GitHub (и Homebrew в этом отношении); формула для emacs в главном репозитории не работает в OS X Lion, но есть «запрос на извлечение» (https://github.com/mxcl/homebrew/pull/6518), который решает проблему (но он не объединен в главном репозитории).

Как я могу обновить свою локальную копию репозитория Homebrew, чтобы исправить эту формулу? Если мне удастся это сделать, будет ли эта формула обновляться, если основное хранилище содержит это исправление?

Пожалуйста, исправьте меня, если терминология неверна.

Ответы [ 3 ]

54 голосов
/ 22 октября 2012

Вы можете установить формулу Homebrew непосредственно из запроса на получение, используя brew install $raw_pull_requst_url, например:

brew install https://raw.github.com/ColinHebert/homebrew/538a99cc06a8f40b6ebcf2f4f8fd44d563c672cd/Library/Formula/emacs.rb

Для поиска URL-адреса запроса на извлечение, возможно, есть лучший способ, но я перешел на URL-адрес запроса на получение, который вы связали, щелкнул Файлы изменены , затем Просмотр файла @ 9b22d42 затем, наконец, Raw

15 голосов
/ 31 августа 2011

Документация по Github описывает это довольно многословно (раздел Слияние запроса на извлечение ):

в вашем репо:

git checkout master
git remote add colin https://github.com/ColinHebert/homebrew.git
git fetch colin

Теперь у вас есть все содержимое репо colin (включая сведения о хешах коммитов, используемых в этом репо). Далее следует применить изменения. В документах говорится, что вы должны сделать git merge, но в нашем случае это не так хорошо, так как Колин добавил изменения в его master. Если он работает над master (и делает еще несколько коммитов), вы тоже получите эти изменения.

К счастью, четыре коммита, составляющие патч, названы в Pull-запросе: ae28b29e, df10b69a, e8915488, 87f2d1e5. Вы можете применить их с git cherry-pick:

git cherry-pick ae28b29e
git cherry-pick df10b69a
git cherry-pick e8915488
git cherry-pick 87f2d1e5

Вот и все. Теперь вы можете удалить пульт colin с помощью

git remote rm colin

Другой возможностью было бы загрузить патч и применить его:

git checkout master
curl https://github.com/mxcl/homebrew/pull/6518.patch | git am

Патчи для запросов извлечения всегда доступны через

https://github.com/<user>/<repo>/pull/<request_number>.patch
10 голосов
/ 26 января 2017

Мне показалось, что для обычного доморощенного пользователя лучше следующее.

Если вы ищете исправление, будет номер вытягивания:

| => brew search vmdktool
No formula found for "vmdktool".
==> Searching pull requests...
Open pull requests:
vmdktool 1.4 (new formula) (https://github.com/Homebrew/homebrew-core/pull/9109)

Просто сделайте brew pull ####, где #### - это номер извлечения:

| => brew pull 9109
fatal: ref HEAD is not a symbolic ref
Warning: Current branch is : do you need to pull inside master?
==> Fetching patch
Patch: https://github.com/Homebrew/homebrew-core/pull/9109.patch
==> Applying patch
Applying: vmdktool 1.4 (new formula)
==> Patch closes issue #9109
==> Patch changed:
 Formula/vmdktool.rb | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

затем выполните установку / обновление:

| => brew install vmdktool
Updating Homebrew...
==> Auto-updated Homebrew!
Updated Homebrew from 11cf7b9 to 1f97e31.
No changes to formulae.

==> Using the sandbox
==> Downloading https://people.freebsd.org/~brian/vmdktool/vmdktool-1.4.tar.gz
######################################################################## 100.0%
==> make CFLAGS='-D_GNU_SOURCE -g -O -pipe'
==> make install PREFIX=/usr/local/Cellar/vmdktool/1.4
?  /usr/local/Cellar/vmdktool/1.4: 4 files, 34.4K, built in 2 seconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...