我使用 FogBugz 的按需(托管)版本。我想开始使用 Mercurial 进行源代码控制。我想集成 FogBugz 和 BitBucket 存储库。我试了一下,但事情进展并不顺利。
FogBugz 要求您将 Mercurial 客户端连接到 fogbugz.py python 脚本。TortoiseHg 似乎没有他们在说明中引用的 hgext 目录。
那么有没有人成功地做过类似的事情?
我使用 FogBugz 的按需(托管)版本。我想开始使用 Mercurial 进行源代码控制。我想集成 FogBugz 和 BitBucket 存储库。我试了一下,但事情进展并不顺利。
FogBugz 要求您将 Mercurial 客户端连接到 fogbugz.py python 脚本。TortoiseHg 似乎没有他们在说明中引用的 hgext 目录。
那么有没有人成功地做过类似的事情?
从它的声音来看,您想在本地机器上运行钩子。钩子和方向旨在用于中央服务器。
如果您是唯一一个在您的存储库中工作的人,或者不介意在您进行拉取之后提交不会出现在 FB 中,那么您可以在本地将钩子添加到您的主克隆,如果您使用的是主克隆,那么您需要做一些与他们在这里所说的略有不同的事情:http: //bugs.movabletype.org/help/topics/sourcecontrol/setup/Mercurial.html
您可以将您的 fogbugz.py 放在任何您想要的位置,只需在该存储库 hgrc 文件的 [fogbugz] 部分添加一个路径行:
[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
以及您的差异网址的以下内容:
^REPO/diff/^R2/^FILE
当挂钩脚本运行时,它会连接到您的 FB 安装并向其发送一些参数。这些参数存储在数据库中,用于生成差异和日志信息的 url。该脚本发送 repo 的 url,这是在 [web] 部分的 baseurl 设置中。您希望此 url 成为您的 bitbucket 存储库的 url。这将用于替换上面 url 模板中的^REPO。挂钩脚本还将修订 ID 和文件名传递给 FB。这些将替换 ^R2 和 ^FILE。所以总而言之,这是您要添加到 .hg 目录中的 hgrc 文件中的内容:
[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>/
要记住的一件事是,在您实际将这些更改推送到 bitbucket 之前,FB 可能会收到签入通知。如果这是原因,请推动,一切都会奏效。
编辑:添加了关于 FB 服务器和摘要的部分。
提醒一下:Fog Creek 发布了Kiln,它提供了与 FogBugz 紧密集成的 Mercurial 托管,并且不需要任何配置。
我通常不会在 Stack Overflow 上“做广告”(免责声明:我是 Kiln 开发人员之一),但我觉得这直接回答了最初的问题。
可以将您的 GIT BitBucket 存储库与 FogBugz 问题跟踪器集成,但不幸的是它没有正确记录。
您必须按照https://confluence.atlassian.com/display/BITBUCKET/FogBugz+Service+Management中描述的步骤进行操作,但请注意
在 CVSSubmit URL 中,您需要输入没有“?ixBug=bugID&sFile=file&sPrev=x&sNew=y&ixRepository=”参数的 url。
它应该只是“https://your_repo.fogbugz.com/cvsSubmit.asp”
您需要在 git 提交消息中提及您的 FogBugz 案例 ID,方法是在其中放入“BugzID:ID”字符串(这在任何地方都没有记录:-(),类似于:
git commit -m "这是一个解决案例 BugzID: 42 的极好的提交"
当然,提交信息将在您将提交推送到 BitBucket 服务器之后发送到 FogBugz,而不是在您进行本地提交之后。