Как я могу интегрировать репозиторий Bitbucket с размещенной по требованию версией FogBugz?
-
02-07-2019 - |
Вопрос
Я использую размещенную по требованию версию FogBugz.Я хотел бы начать использовать Mercurial для контроля версий.Я хотел бы интегрировать FogBugz и репозиторий BitBucket.Я немного попробовал, но дела шли не очень хорошо.
FogBugz требует, чтобы вы подключили свой клиент Mercurial к скрипту Python Fogbugz.py.Похоже, что у TortoiseHg нет каталога hgext, на который они ссылаются в инструкциях.
Так кто-нибудь успешно сделал что-то подобное?
Решение
Судя по всему, вы хотите запустить перехватчик на своей локальной машине.Крючок и направления предназначены для использования на центральном сервере.
Если вы единственный, кто работает в своем репозитории, или не возражаете против того, чтобы фиксация не отображалась в 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
и следующее для вашего URL-адреса разницы:
^REPO/diff/^R2/^FILE
Когда скрипт-перехватчик запускается, он подключается к вашей установке FB и отправляет ей несколько параметров.Эти параметры хранятся в базе данных и используются для создания URL-адресов для различий и информации журналов.Скрипт отправляет URL-адрес репозитория, он указан в настройках baseurl в разделе [web].Вы хотите, чтобы этот URL-адрес был URL-адресом вашего репозитория Bitbucket.Это будет использоваться для замены ^РЕПО из шаблонов 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 теперь имеет встроенную поддержку Fogbugz, а также другие сервисы обратной передачи.
Просто предупредил:Фог Крик выпустил печь который предоставляет хостинг Mercurial, тесно интегрированный с FogBugz и не требующий какой-либо настройки.
Обычно я бы не «рекламировал» Stack Overflow (отказ от ответственности:Я один из разработчиков Kiln), но мне кажется, что это прямо отвечает на исходный вопрос.
Вы можете интегрировать свой репозиторий GIT BitBucket с системой отслеживания ошибок FogBugz, но, к сожалению, это не документировано должным образом.
Вам необходимо выполнить действия, описанные в https://confluence.atlassian.com/display/BITBUCKET/FogBugz+Service+Management, но остерегайтесь этого
В URL-адресе CVSSubmit вам необходимо указать URL-адрес БЕЗ параметров "?ixBug=bugID&sFile=file&sPrev=x&sNew=y&ixRepository=".
Это должно быть просто «https://your_repo.fogbugz.com/cvsSubmit.asp».
Вам нужно будет упомянуть свой идентификатор дела Fogbugz в сообщении GIT Commit, разместив «Bugzid:ID "Строка в нем (это нигде не задокументировано :-() аналогично этим:
git commit -m "Это превосходный коммит, который решает проблему BugzID:42 дюйма
Конечно, информация о фиксации будет отправлена в FogBugz после того, как вы отправите фиксацию на сервер BitBucket, а не после того, как вы выполните локальную фиксацию.