[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