=== modified file 'bzrlib/builtins.py' --- bzrlib/builtins.py 2008-10-12 16:11:17 +0000 +++ bzrlib/builtins.py 2008-10-25 20:58:40 +0000 @@ -1607,6 +1607,11 @@ raise errors.BzrCommandError('bzr diff --revision takes exactly' ' one or two revision specifiers') + if using is None: + using = config.GlobalConfig().get_diff_tool() + if using == 'bzr': + using = None + old_tree, new_tree, specific_files, extra_trees = \ _get_trees_to_diff(file_list, revision, old, new) return show_diff_trees(old_tree, new_tree, sys.stdout, === modified file 'bzrlib/config.py' --- bzrlib/config.py 2008-10-16 18:30:32 +0000 +++ bzrlib/config.py 2008-10-25 20:55:11 +0000 @@ -146,7 +146,15 @@ """A configuration policy - what username, editor, gpg needs etc.""" def get_editor(self): - """Get the users pop up editor.""" + """Get the user's pop up editor.""" + raise NotImplementedError + + def get_diff_tool(self): + """Get the user's default diff program.""" + raise NotImplementedError + + def get_merge_tool(self): + """Get the user's default merge program.""" raise NotImplementedError def get_mail_client(self): @@ -428,6 +436,12 @@ def get_editor(self): return self._get_user_option('editor') + def get_merge_tool(self): + return self._get_user_option('merge_tool') + + def get_diff_tool(self): + return self._get_user_option('diff_tool') + def __init__(self): super(GlobalConfig, self).__init__(config_filename)