views:

932

answers:

3

I use the on-demand (hosted) version of FogBugz. I would like to start using Mercurial for source control. I would like to integrate FogBugz and a BitBucket repository. I gave it a bit of a try but things weren't going very well.

FogBugz requires that you hook up your Mercurial client to a fogbugz.py python script. TortoiseHg doesn't seem to have the hgext directory that they refer to in instructions.

So has anyone successfully done something similar?

+5  A: 

From the sounds of it you are wanting to run the hook on your local machine. The hook and directions are intended for use on the central server.

If you are the only one working in your repository or don't mind commit not showing up in FB until after you do a pull, then you can add the hook locally to your primary clone, If you are using your primary clone then you need to do something slightly different from what they say here: http://bugs.movabletype.org/help/topics/sourcecontrol/setup/Mercurial.html

You can put your fogbugz.py anywhere you want, just add a path line to your [fogbugz] section of that repositories hgrc file:

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

Just make sure you have python installed. you may also wish to add a commit hook so that local commits to the repository also get into FB.

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

On the Fogbugz install you will want change put the following in your for your logs url:

^REPO/log/^R2/^FILE

and the following for your diff url:

^REPO/diff/^R2/^FILE

When the hook script runs it connects to your FB install and sends it a few parameters. These parameters are stored in the DB and used to generate urls for diffs and log informaiton. The script sends the url of repo, this is in your baseurl setting in the [web] section. You want this url to be the url to your bitbucket repository. This will be used to replace ^REPO from the url templates above. The hook script also passes the revision id and the file name to FB. These will replace ^R2 and ^FILE. So in summary this is the stuff you want to add to the hgrc file in your .hg directory:

[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>/

One thing to remember is that FB may get notified of a checkin before you actually push those changes to bitbucket. If this is the cause do a push and things will work.

EDIT: added section about the FB server and the summary.

Stefan Rusek
thanks for you answer... can you tell me anything about the script parameter that is supposed to go in the [fogbugz] section... since i'm not hosting fogbugz, how does that work?
carrier
+11  A: 

Post-mortem:

Bitbucket now has native fogbugz support, as well as other post-back services.

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

jespern
cool, thanks for info... now i just have to figure out how to get that to work
carrier
A: 

Just a heads-up: Fog Creek has released Kiln which provides Mercurial hosting that's tightly integrated with FogBugz and doesn't require any configuration.

I normally wouldn't "advertise" on Stack Overflow (disclaimer: I'm one of the Kiln devs), but I feel that this directly answers the original question.

kamens