Rev 2494: Merge log --limit (Kent Gibson) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Fri May 25 05:33:34 BST 2007
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 2494
revision-id: pqm at pqm.ubuntu.com-20070525043332-aw7j04dvjy6ua1v9
parent: pqm at pqm.ubuntu.com-20070524165738-rzs9lvgoqk20vls9
parent: aaron.bentley at utoronto.ca-20070525040047-w4ymt5gvi3gecx1g
committer: Canonical.com Patch Queue Manager<pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-05-25 05:33:32 +0100
message:
Merge log --limit (Kent Gibson)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
------------------------------------------------------------
revno: 2493.1.1
merged: aaron.bentley at utoronto.ca-20070525040047-w4ymt5gvi3gecx1g
parent: pqm at pqm.ubuntu.com-20070524165738-rzs9lvgoqk20vls9
parent: warthog618 at gmail.com-20070505023239-2yrekc2wwgkpu6br
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: bzr.ab.integration
timestamp: Fri 2007-05-25 00:00:47 -0400
message:
Merge log --limit (Kent Gibson)
------------------------------------------------------------
revno: 2466.8.1.1.1
merged: warthog618 at gmail.com-20070505023239-2yrekc2wwgkpu6br
parent: warthog618 at gmail.com-20070429034630-p3xbitz2xyl6pbie
committer: Kent Gibson <warthog618 at gmail.com>
branch nick: log_limit
timestamp: Sat 2007-05-05 10:32:39 +0800
message:
add bzr log --limit
=== modified file 'NEWS'
--- a/NEWS 2007-05-24 15:26:41 +0000
+++ b/NEWS 2007-05-25 04:00:47 +0000
@@ -14,6 +14,9 @@
attempt to explain these concepts. (James Westby, John Arbash Meinel,
Aaron Bentley)
+ * Added ``bzr log --limit`` to report a limited number of revisions.
+ (Kent Gibson, #3659)
+
BUGFIXES:
* ``bzr push`` should only connect to the remote location one time.
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-05-24 15:26:41 +0000
+++ b/bzrlib/builtins.py 2007-05-25 04:00:47 +0000
@@ -1563,6 +1563,14 @@
self.outf.write(tree.basedir + '\n')
+def _parse_limit(limitstring):
+ try:
+ return int(limitstring)
+ except ValueError:
+ msg = "The limit argument must be an integer."
+ raise errors.BzrCommandError(msg)
+
+
class cmd_log(Command):
"""Show log of a branch, file, or directory.
@@ -1593,6 +1601,9 @@
short_name='m',
help='show revisions whose message matches this regexp',
type=str),
+ Option('limit',
+ help='limit the output to the first N revisions',
+ type=_parse_limit),
]
encoding_type = 'replace'
@@ -1603,7 +1614,8 @@
forward=False,
revision=None,
log_format=None,
- message=None):
+ message=None,
+ limit=None):
from bzrlib.log import show_log
assert message is None or isinstance(message, basestring), \
"invalid message argument %r" % message
@@ -1684,7 +1696,8 @@
direction=direction,
start_revision=rev1,
end_revision=rev2,
- search=message)
+ search=message,
+ limit=limit)
finally:
b.unlock()
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py 2007-05-24 12:42:24 +0000
+++ b/bzrlib/log.py 2007-05-25 04:00:47 +0000
@@ -132,7 +132,8 @@
direction='reverse',
start_revision=None,
end_revision=None,
- search=None):
+ search=None,
+ limit=None):
"""Write out human-readable log of commits to this branch.
lf
@@ -154,6 +155,12 @@
end_revision
If not None, only show revisions <= end_revision
+
+ search
+ If not None, only show revisions with matching commit messages
+
+ limit
+ If not None or 0, only show limit revisions
"""
branch.lock_read()
try:
@@ -161,7 +168,7 @@
lf.begin_log()
_show_log(branch, lf, specific_fileid, verbose, direction,
- start_revision, end_revision, search)
+ start_revision, end_revision, search, limit)
if getattr(lf, 'end_log', None):
lf.end_log()
@@ -175,7 +182,8 @@
direction='reverse',
start_revision=None,
end_revision=None,
- search=None):
+ search=None,
+ limit=None):
"""Worker function for show_log - see show_log."""
from bzrlib.osutils import format_date
from bzrlib.errors import BzrCheckError
@@ -282,6 +290,7 @@
num = min(int(num * 1.5), 200)
# now we just print all the revisions
+ log_count = 0
for ((rev_id, revno, merge_depth), (rev, delta)) in \
izip(view_revisions, iter_revisions()):
@@ -309,6 +318,10 @@
rev_tag_dict.get(rev_id))
else:
lf.show_merge_revno(rev, merge_depth, revno)
+ if limit:
+ log_count += 1
+ if log_count >= limit:
+ break
def _get_revisions_touching_file_id(branch, file_id, mainline_revisions,
=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py 2007-04-23 19:23:14 +0000
+++ b/bzrlib/tests/blackbox/test_log.py 2007-05-05 02:32:39 +0000
@@ -148,6 +148,13 @@
log = self.runbzr("log -r-1")[0]
self.assertContainsRe(log, r' tags: tag1')
+ def test_log_limit(self):
+ self._prepare()
+ log = self.runbzr("log --limit 2")[0]
+ self.assertTrue('revno: 1\n' not in log)
+ self.assertTrue('revno: 2\n' in log)
+ self.assertTrue('revno: 3\n' in log)
+
class TestLogMerges(ExternalBase):
More information about the bazaar-commits
mailing list