Подтвердить что ты не робот

Homebrew: как использовать формулу из запроса на растяжение

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

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

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

4b9b3361

Ответ 1

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

в вашем репо:

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

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

К счастью, четыре коммиты, составляющие патч, называются в Pull-request: 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

Ответ 2

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

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

Для поиска URL-адреса запроса тяги, вероятно, лучший способ, но я пошел на URL-адрес запроса на вытягивание, нажал на Измененные файлы, затем на View File @9b22d42, а затем на Raw

Ответ 3

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

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

| => 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