Rev 4015: (Daniel) Add help option to shelve prompt. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Feb 18 08:49:23 GMT 2009
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 4015
revision-id: pqm at pqm.ubuntu.com-20090218084918-7d1qa881h8ahpu82
parent: pqm at pqm.ubuntu.com-20090218051900-z4u214yqxrm7uvtl
parent: jelmer at samba.org-20090216163844-d8n3zc2ah5gudyi8
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2009-02-18 08:49:18 +0000
message:
(Daniel) Add help option to shelve prompt.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/shelf_ui.py shelver.py-20081005210102-33worgzwrtdw0yrm-1
bzrlib/tests/test_shelf_ui.py test_shelf_ui.py-20081027155203-wtcuazg85wp9u4fv-1
------------------------------------------------------------
revno: 4010.1.2
revision-id: jelmer at samba.org-20090216163844-d8n3zc2ah5gudyi8
parent: jelmer at samba.org-20090216163752-hiq812wpsmiuduqp
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzr.dev
timestamp: Mon 2009-02-16 17:38:44 +0100
message:
Move NEWS item to DEVELOPMENT version from 1.12.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 4010.1.1
revision-id: jelmer at samba.org-20090216163752-hiq812wpsmiuduqp
parent: pqm at pqm.ubuntu.com-20090216105404-hjw8bck3ocg47wjz
parent: daniel at daniel-watkins.co.uk-20090210004610-9d5uqzyds41pwte4
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzr.dev
timestamp: Mon 2009-02-16 17:37:52 +0100
message:
merge Daniels shelve help patch.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/shelf_ui.py shelver.py-20081005210102-33worgzwrtdw0yrm-1
bzrlib/tests/test_shelf_ui.py test_shelf_ui.py-20081027155203-wtcuazg85wp9u4fv-1
------------------------------------------------------------
revno: 3990.4.4
revision-id: daniel at daniel-watkins.co.uk-20090210004610-9d5uqzyds41pwte4
parent: daniel at daniel-watkins.co.uk-20090210004348-l5pkl1g9rj9wddpy
committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
branch nick: shelf-prompt
timestamp: Tue 2009-02-10 00:46:10 +0000
message:
Added NEWS entry.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3990.4.3
revision-id: daniel at daniel-watkins.co.uk-20090210004348-l5pkl1g9rj9wddpy
parent: daniel at daniel-watkins.co.uk-20090210004331-bm19sju6432fu3tx
committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
branch nick: shelf-prompt
timestamp: Tue 2009-02-10 00:43:48 +0000
message:
Added help option to shelve prompt.
modified:
bzrlib/shelf_ui.py shelver.py-20081005210102-33worgzwrtdw0yrm-1
------------------------------------------------------------
revno: 3990.4.2
revision-id: daniel at daniel-watkins.co.uk-20090210004331-bm19sju6432fu3tx
parent: daniel at daniel-watkins.co.uk-20090210003348-iyfwr4dpfqsvn0ii
committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
branch nick: shelf-prompt
timestamp: Tue 2009-02-10 00:43:31 +0000
message:
Added test for help option.
modified:
bzrlib/tests/test_shelf_ui.py test_shelf_ui.py-20081027155203-wtcuazg85wp9u4fv-1
------------------------------------------------------------
revno: 3990.4.1
revision-id: daniel at daniel-watkins.co.uk-20090210003348-iyfwr4dpfqsvn0ii
parent: pqm at pqm.ubuntu.com-20090209210810-cq9lgqy519b7wfyi
committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
branch nick: shelf-prompt
timestamp: Tue 2009-02-10 00:33:48 +0000
message:
Changed all shelve tests to expect a '?'.
modified:
bzrlib/tests/test_shelf_ui.py test_shelf_ui.py-20081027155203-wtcuazg85wp9u4fv-1
=== modified file 'NEWS'
--- a/NEWS 2009-02-18 04:41:42 +0000
+++ b/NEWS 2009-02-18 08:49:18 +0000
@@ -30,6 +30,9 @@
generation of a working tree in the new branch.
(Daniel Watkins, John Klinger, #273993)
+ * The ``bzr shelve`` prompt now includes a '?' help option to explain the
+ short options better. (Daniel Watkins, #327429)
+
BUG FIXES:
* ``bzr unshelve`` gives a more palatable error if passed a non-integer
=== modified file 'bzrlib/shelf_ui.py'
--- a/bzrlib/shelf_ui.py 2009-02-09 23:34:46 +0000
+++ b/bzrlib/shelf_ui.py 2009-02-16 16:37:52 +0000
@@ -157,7 +157,7 @@
sys.stdout.flush()
return char
- def prompt_bool(self, question):
+ def prompt_bool(self, question, long=False):
"""Prompt the user with a yes/no question.
This may be overridden by self.auto. It may also *set* self.auto. It
@@ -167,12 +167,18 @@
"""
if self.auto:
return True
- char = self.prompt(question + ' [yNfq]')
+ if long:
+ prompt = ' [(y)es, (N)o, (f)inish, or (q)uit]'
+ else:
+ prompt = ' [yNfq?]'
+ char = self.prompt(question + prompt)
if char == 'y':
return True
elif char == 'f':
self.auto = True
return True
+ elif char == '?':
+ return self.prompt_bool(question, long=True)
if char == 'q':
raise errors.UserAbort()
else:
=== modified file 'bzrlib/tests/test_shelf_ui.py'
--- a/bzrlib/tests/test_shelf_ui.py 2009-02-11 00:29:57 +0000
+++ b/bzrlib/tests/test_shelf_ui.py 2009-02-16 16:37:52 +0000
@@ -68,20 +68,20 @@
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
e = self.assertRaises(AssertionError, shelver.run)
- self.assertEqual('Unexpected prompt: Shelve? [yNfq]', str(e))
+ self.assertEqual('Unexpected prompt: Shelve? [yNfq?]', str(e))
def test_wrong_prompt_failure(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
shelver.expect('foo', 'y')
e = self.assertRaises(AssertionError, shelver.run)
- self.assertEqual('Wrong prompt: Shelve? [yNfq]', str(e))
+ self.assertEqual('Wrong prompt: Shelve? [yNfq?]', str(e))
def test_shelve_not_diff(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'n')
- shelver.expect('Shelve? [yNfq]', 'n')
+ shelver.expect('Shelve? [yNfq?]', 'n')
+ shelver.expect('Shelve? [yNfq?]', 'n')
# No final shelving prompt because no changes were selected
shelver.run()
self.assertFileEqual(LINES_ZY, 'tree/foo')
@@ -89,27 +89,27 @@
def test_shelve_diff_no(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve 2 change(s)? [yNfq]', 'n')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve 2 change(s)? [yNfq?]', 'n')
shelver.run()
self.assertFileEqual(LINES_ZY, 'tree/foo')
def test_shelve_diff(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve 2 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AJ, 'tree/foo')
def test_shelve_one_diff(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve? [yNfq]', 'n')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'n')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AY, 'tree/foo')
@@ -117,8 +117,8 @@
tree = self.create_shelvable_tree()
self.build_tree_contents([('tree/foo', '\x00')])
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve binary changes? [yNfq]', 'y')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve binary changes? [yNfq?]', 'y')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AJ, 'tree/foo')
@@ -126,10 +126,10 @@
tree = self.create_shelvable_tree()
tree.rename_one('foo', 'bar')
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve renaming "foo" => "bar"? [yNfq]', 'y')
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve? [yNfq]', 'y')
- shelver.expect('Shelve 3 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve renaming "foo" => "bar"? [yNfq?]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'y')
+ shelver.expect('Shelve 3 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AJ, 'tree/foo')
@@ -137,8 +137,8 @@
tree = self.create_shelvable_tree()
os.unlink('tree/foo')
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve removing file "foo"? [yNfq]', 'y')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve removing file "foo"? [yNfq?]', 'y')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AJ, 'tree/foo')
@@ -148,8 +148,8 @@
self.build_tree(['tree/foo'])
tree.add('foo')
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve adding file "foo"? [yNfq]', 'y')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve adding file "foo"? [yNfq?]', 'y')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
shelver.run()
self.failIfExists('tree/foo')
@@ -158,22 +158,22 @@
os.unlink('tree/foo')
os.mkdir('tree/foo')
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve changing "foo" from file to directory? [yNfq]',
+ shelver.expect('Shelve changing "foo" from file to directory? [yNfq?]',
'y')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
def test_shelve_finish(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'f')
- shelver.expect('Shelve 2 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve? [yNfq?]', 'f')
+ shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
shelver.run()
self.assertFileEqual(LINES_AJ, 'tree/foo')
def test_shelve_quit(self):
tree = self.create_shelvable_tree()
shelver = ExpectShelver(tree, tree.basis_tree())
- shelver.expect('Shelve? [yNfq]', 'q')
+ shelver.expect('Shelve? [yNfq?]', 'q')
self.assertRaises(errors.UserAbort, shelver.run)
self.assertFileEqual(LINES_ZY, 'tree/foo')
@@ -187,8 +187,16 @@
self.build_tree(['tree/bar'])
tree.add('bar')
shelver = ExpectShelver(tree, tree.basis_tree(), file_list=['bar'])
- shelver.expect('Shelve adding file "bar"? [yNfq]', 'y')
- shelver.expect('Shelve 1 change(s)? [yNfq]', 'y')
+ shelver.expect('Shelve adding file "bar"? [yNfq?]', 'y')
+ shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
+ shelver.run()
+
+ def test_shelve_help(self):
+ tree = self.create_shelvable_tree()
+ shelver = ExpectShelver(tree, tree.basis_tree())
+ shelver.expect('Shelve? [yNfq?]', '?')
+ shelver.expect('Shelve? [(y)es, (N)o, (f)inish, or (q)uit]', 'f')
+ shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
shelver.run()
More information about the bazaar-commits
mailing list