[PATCH 2 of 2] dispatch: add ability to specify a custom pdb module as a debugger

Sean Farley sean.michael.farley at gmail.com
Wed Aug 7 15:45:54 CDT 2013


kbullock+mercurial at ringworld.org writes:

> On 13 Jul 2013, at 5:16 PM, Sean Farley wrote:
>
>> # HG changeset patch
>> # User Sean Farley <sean.michael.farley at gmail.com>
>> # Date 1373752000 18000
>> #      Sat Jul 13 16:46:40 2013 -0500
>> # Node ID 42113a6e12bc864e044bacb57407a68a97d7f1da
>> # Parent  15a903bca551318cd0c3f42484374a8b8acd08e5
>> dispatch: add ability to specify a custom pdb module as a debugger
>> 
>> This adds the ability to specify a config option, ui.debugger, to a custom pdb
>> module, such as ipdb, and have mercurial use that as its debugger.
>> 
>> diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
>> --- a/mercurial/dispatch.py
>> +++ b/mercurial/dispatch.py
>> @@ -97,24 +97,49 @@
>>                 # copy configs that were passed on the cmdline (--config) to
>>                 # the repo ui
>>                 for cfg in cfgs:
>>                     req.repo.ui.setconfig(*cfg)
>> 
>> +            debugger = ui.config("ui", "debugger")
>> +            if not debugger:
>> +                debugger = 'pdb'
>> +
>> +            try:
>> +                ipdb = __import__(debugger)
>> +            except ImportError:
>> +                ipdb = pdb
>
> Can't you just:
>
>             try:
>                 debugmod = __import__(debugger)
>             except ImportError:
>                 debugmod = pdb
>
> and adjust your dispatch tables appropriately from there, so that they can use 'ipdb' as the key directly where appropriate?

I think I see what you're saying here but I didn't use 'ipdb' as a key
because I wanted the config option to remain flexible. The code, as I
have it written, will work with 'debugger = foo' as long as the foo
module has the same functions as pdb.

Anyways, I've already sent V2 so I guess I'll look there for feedback.


More information about the Mercurial-devel mailing list