[MERGE][Bug #133548] bzr help does not recognise user configured aliases
Daniel Watkins
D.M.Watkins at warwick.ac.uk
Wed Aug 22 21:30:29 BST 2007
On Wed, 2007-08-22 at 20:47 +0100, James Westby wrote:
> Can I ask what your code does if the user has an alias that is something
> like:
>
> log='log --line'
>
> It shouldn't just print the alias, but I think it would be good to print
> the information that the user has it aliased somewhere in the help.
Attached is a bundle which appends the alias to the end of the help
output in the above situation. It also has some tests.
Regards,
--
Daniel Watkins (Odd_Bloke) <D.M.Watkins at warwick.ac.uk>
University of Warwick Christian Focus President
University of Warwick Computing Society WUGLUG Liaison Officer
-------------- next part --------------
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: d.m.watkins at warwick.ac.uk-20070822202817-\
# 1wth69j425dyyyps
# target_branch: file:///home/daniel/devel/bzr/bzr.dev/
# testament_sha1: a3da4fb77e515a9a86b0bea557da68b4eeaebf6f
# timestamp: 2007-08-22 22:28:27 +0200
# base_revision_id: pqm at pqm.ubuntu.com-20070822052832-nxby1d1plok4syek
#
# Begin patch
=== modified file 'NEWS'
--- NEWS 2007-08-22 05:28:32 +0000
+++ NEWS 2007-08-22 18:55:47 +0000
@@ -33,6 +33,10 @@
* get_transport treats an empty possible_transports list the same as a non-
empty one. (Aaron Bentley)
+ * If a particular command is an alias, ``help`` will show the alias
+ instead of claiming there is no help for said alias. (Daniel Watkins,
+ #133548)
+
IMPROVEMENTS:
* ``pull`` and ``merge`` are much faster at installing bundle format 4.
=== modified file 'bzrlib/help.py'
--- bzrlib/help.py 2007-08-06 08:25:46 +0000
+++ bzrlib/help.py 2007-08-22 20:16:39 +0000
@@ -40,11 +40,21 @@
outfile = sys.stdout
indices = HelpIndices()
- topics = indices.search(topic)
- shadowed_terms = []
- for index, topic in topics[1:]:
- shadowed_terms.append('%s%s' % (index.prefix, topic.get_help_topic()))
- outfile.write(topics[0][1].get_help_text(shadowed_terms))
+
+ alias = _mod_commands.get_alias(topic)
+ try:
+ topics = indices.search(topic)
+ shadowed_terms = []
+ for index, topic in topics[1:]:
+ shadowed_terms.append('%s%s' % (index.prefix, topic.get_help_topic()))
+ outfile.write(topics[0][1].get_help_text(shadowed_terms))
+ if alias:
+ outfile.write("'bzr %s' is an alias for 'bzr %s'.\n" % (topic, " ".join(alias)))
+ except errors.NoHelpTopic:
+ if alias:
+ outfile.write("'bzr %s' is an alias for 'bzr %s'.\n" % (topic, " ".join(alias)))
+ else:
+ raise errors.NoHelpTopic(topic)
def help_commands(outfile=None):
=== modified file 'bzrlib/tests/blackbox/test_help.py'
--- bzrlib/tests/blackbox/test_help.py 2007-08-06 08:25:46 +0000
+++ bzrlib/tests/blackbox/test_help.py 2007-08-22 20:28:17 +0000
@@ -21,6 +21,7 @@
import bzrlib
from bzrlib.tests.blackbox import ExternalBase
+from bzrlib.config import (ensure_config_dir_exists, config_filename)
class TestHelp(ExternalBase):
@@ -126,3 +127,19 @@
if '--long' in line:
self.assertContainsRe(line,
r'Show help on all commands\.')
+
+ def test_help_with_aliases(self):
+ original = self.run_bzr('help cat')[0]
+
+ ensure_config_dir_exists()
+ CONFIG=("[ALIASES]\n"
+ "c=cat\n"
+ "cat=cat\n")
+
+ open(config_filename(),'wb').write(CONFIG)
+
+ expected = original + "'bzr cat' is an alias for 'bzr cat'.\n"
+ self.assertEqual(expected, self.run_bzr('help cat')[0])
+
+ self.assertEqual("'bzr c' is an alias for 'bzr cat'.\n",
+ self.run_bzr('help c')[0])
# Begin bundle
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070822/558046c2/attachment-0001.pgp
More information about the bazaar
mailing list