Как я могу интегрировать репозиторий bitbucket с размещенной версией FogBugz по требованию?

Я использую версию FogBugz по запросу (размещенную). Я хотел бы начать использовать Mercurial для контроля версий. Я хотел бы интегрировать FogBugz и репозиторий BitBucket. Я попробовал, но дела шли не очень хорошо.

FogBugz требует, чтобы вы подключили свой клиент Mercurial к сценарию на python fogbugz.py. У TortoiseHg, похоже, нет каталога hgext, на который они ссылаются в инструкциях.

Так кто-нибудь успешно сделал что-то подобное?

4 ответа

Решение

Судя по звукам, вы хотите запустить ловушку на вашем локальном компьютере. Крюк и направления предназначены для использования на центральном сервере.

Если вы единственный, кто работает в вашем репозитории, или не возражаете против того, чтобы коммит не появлялся в FB до тех пор, пока вы не сделаете извлечение, то вы можете добавить ловушку локально к первичному клону. Если вы используете свой основной клон, тогда вам нужно сделать что-то немного отличное от того, что они говорят здесь: http://bugs.movabletype.org/help/topics/sourcecontrol/setup/Mercurial.html

Вы можете поместить ваш fogbugz.py куда угодно, просто добавьте строку пути в раздел [fogbugz] этого hgrc-файла репозиториев:

[fogbugz]
path=C:\Program Files\TortoiseHg\scripts\fogbugz.py

Просто убедитесь, что у вас установлен Python. Вы также можете добавить хук фиксации, чтобы локальные коммиты в хранилище также попадали в FB.

[hooks]
commit=python:hgext.fogbugz.hook
incoming=python:hgext.fogbugz.hook

При установке Fogbugz вы захотите внести изменения, указав в своем URL-адресах логи следующее:

^REPO/log/^R2/^FILE

и следующее для вашего diff url:

^REPO/diff/^R2/^FILE

Когда скрипт ловушки запускается, он подключается к вашей установке FB и отправляет ему несколько параметров. Эти параметры хранятся в БД и используются для генерации URL для различий и регистрации информации. Скрипт отправляет URL репо, это в настройках вашего baseurl в разделе [web]. Вы хотите, чтобы этот URL был URL вашего хранилища битбакетов. Это будет использоваться для замены ^REPO из шаблонов URL выше. Сценарий подключения также передает идентификатор редакции и имя файла в FB. Они заменят ^R2 и ^FILE. Итак, в заключение, это то, что вы хотите добавить в файл hgrc в вашем каталоге.hg:

[extensions]
hgext.fogbugz=

[fogbugz]
path=C:\Program Files\TortoiseHg\scripts\fogbugz.py
host=https://<YOURACCOUNT>.fogbugz.com/
script=cvsSubmit.asp

[hooks]
commit=python:hgext.fogbugz.hook
incoming=python:hgext.fogbugz.hook

[web]
baseurl=http://www.bitbucket.org/<YOURBITBUCKETACCOUNT>/<YOURPROJECT>/

Следует помнить, что FB может получить уведомление о регистрации до того, как вы внесете эти изменения в bitbucket. Если это причина, сделайте толчок, и все будет работать.

РЕДАКТИРОВАТЬ: добавлен раздел о сервере FB и резюме.

Посмертное:

Bitbucket теперь имеет встроенную поддержку fogbugz, а также другие пост-back сервисы.

http://www.bitbucket.org/help/service-integration/

Просто наперед: Fog Creek выпустил Kiln, который предоставляет хостинг Mercurial, который тесно интегрирован с FogBugz и не требует какой-либо настройки.

Обычно я не "рекламирую" в переполнении стека (отказ от ответственности: я один из разработчиков Kiln), но я чувствую, что это прямо отвечает на первоначальный вопрос.

Возможно интегрировать ваш репозиторий GIT BitBucket с системой отслеживания проблем FogBugz, но, к сожалению, она не документирована должным образом.

Вы должны выполнить шаги, описанные в https://confluence.atlassian.com/display/BITBUCKET/FogBugz+Service+Management, но будьте осторожны, что

  1. В URL-адресе CVSSubmit необходимо указать URL без параметров? IxBug=bugID&sFile=file&sPrev=x&sNew=y&ixRepository=".

    Это должно быть просто "https://your_repo.fogbugz.com/cvsSubmit.asp"

  2. Вам нужно будет указать свой идентификатор FogBugz в сообщении git commit, добавив в него строку "BugzID: ID" (это нигде не задокументировано:-():

    git commit -m "Это превосходный коммит, который решает дело BugzID: 42"

Конечно, информация о коммите будет отправлена ​​в FogBugz после того, как вы отправите ваш коммит на сервер BitBucket, а не после того, как вы выполните локальный коммит.

Другие вопросы по тегам