Rev 3994: helper function when only one revision required (Daniel Watkins) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Feb 10 02:22:47 GMT 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3994
revision-id: pqm at pqm.ubuntu.com-20090210022243-eobdt6wezitsxs65
parent: pqm at pqm.ubuntu.com-20090210011204-6m3q6f6o07xmzthe
parent: ian.clatworthy at canonical.com-20090210013833-jnmv3g2apy53t64k
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2009-02-10 02:22:43 +0000
message:
  helper function when only one revision required (Daniel Watkins)
modified:
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3993.1.1
    revision-id: ian.clatworthy at canonical.com-20090210013833-jnmv3g2apy53t64k
    parent: pqm at pqm.ubuntu.com-20090210011204-6m3q6f6o07xmzthe
    parent: daniel at daniel-watkins.co.uk-20090208235825-0tw1nxdmas85m2sb
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Tue 2009-02-10 11:38:33 +1000
    message:
      helper function when only one revision required (Daniel Watkins)
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.9
    revision-id: daniel at daniel-watkins.co.uk-20090208235825-0tw1nxdmas85m2sb
    parent: daniel at daniel-watkins.co.uk-20090208235506-2zz2dhzoz02hhjw2
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Mon 2009-02-09 00:58:25 +0100
    message:
      Converted cmd_push.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.8
    revision-id: daniel at daniel-watkins.co.uk-20090208235506-2zz2dhzoz02hhjw2
    parent: daniel at daniel-watkins.co.uk-20090208234809-wduacw8v6haynq6n
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Mon 2009-02-09 00:55:06 +0100
    message:
      Converted cmd_pull.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.7
    revision-id: daniel at daniel-watkins.co.uk-20090208234809-wduacw8v6haynq6n
    parent: daniel at daniel-watkins.co.uk-20090208000516-uwdxbgnh27nytm3f
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Mon 2009-02-09 00:48:09 +0100
    message:
      Fixed incorrect calls.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.6
    revision-id: daniel at daniel-watkins.co.uk-20090208000516-uwdxbgnh27nytm3f
    parent: daniel at daniel-watkins.co.uk-20090207235441-igbvmxlrs7nz966p
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 01:05:16 +0100
    message:
      Converted cmd_inventory to use _get_one_revision.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.5
    revision-id: daniel at daniel-watkins.co.uk-20090207235441-igbvmxlrs7nz966p
    parent: daniel at daniel-watkins.co.uk-20090207234527-4ophu2a14lo3vor3
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 00:54:41 +0100
    message:
      Changed from option type to helper function.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
    ------------------------------------------------------------
    revno: 3984.3.4
    revision-id: daniel at daniel-watkins.co.uk-20090207234527-4ophu2a14lo3vor3
    parent: daniel at daniel-watkins.co.uk-20090207234233-r2hi27q93rqb7x9f
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 00:45:27 +0100
    message:
      Converted cmd_checkout to use 1revision.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.3
    revision-id: daniel at daniel-watkins.co.uk-20090207234233-r2hi27q93rqb7x9f
    parent: daniel at daniel-watkins.co.uk-20090207234212-bztfd7e5ugi2v8ep
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 00:42:33 +0100
    message:
      Converted cmd_branch to use 1revision.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 3984.3.2
    revision-id: daniel at daniel-watkins.co.uk-20090207234212-bztfd7e5ugi2v8ep
    parent: daniel at daniel-watkins.co.uk-20090207233519-uaw8k5kw7mkgdnqw
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 00:42:12 +0100
    message:
      1revision provides a revision, rather than a one-tuple containing a revision.
    modified:
      bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
    ------------------------------------------------------------
    revno: 3984.3.1
    revision-id: daniel at daniel-watkins.co.uk-20090207233519-uaw8k5kw7mkgdnqw
    parent: pqm at pqm.ubuntu.com-20090205215322-dlhyepy2fid5i7w6
    committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
    branch nick: 1revision
    timestamp: Sun 2009-02-08 00:35:19 +0100
    message:
      Initial implementation of 1revision option.
    modified:
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-02-08 14:10:25 +0000
+++ b/bzrlib/builtins.py	2009-02-10 01:38:33 +0000
@@ -73,6 +73,16 @@
                                      (e.path, file_list[0]))
 
 
+def _get_one_revision(command_name, revisions):
+    if revisions is None:
+        return None
+    if len(revisions) != 1:
+        raise errors.BzrCommandError(
+            'bzr %s --revision takes exactly one revision identifier' % (
+                command_name,))
+    return revisions[0]
+
+
 def _get_one_revision_tree(command_name, revisions, branch=None, tree=None):
     if branch is None:
         branch = tree.branch
@@ -82,11 +92,8 @@
         else:
             rev_tree = branch.basis_tree()
     else:
-        if len(revisions) != 1:
-            raise errors.BzrCommandError(
-                'bzr %s --revision takes exactly one revision identifier' % (
-                    command_name,))
-        rev_tree = revisions[0].as_tree(branch)
+        revision = _get_one_revision(command_name, revisions)
+        rev_tree = revision.as_tree(branch)
     return rev_tree
 
 
@@ -600,15 +607,12 @@
         if kind and kind not in ['file', 'directory', 'symlink']:
             raise errors.BzrCommandError('invalid kind %r specified' % (kind,))
 
+        revision = _get_one_revision('inventory', revision)
         work_tree, file_list = tree_files(file_list)
         work_tree.lock_read()
         try:
             if revision is not None:
-                if len(revision) > 1:
-                    raise errors.BzrCommandError(
-                        'bzr inventory --revision takes exactly one revision'
-                        ' identifier')
-                tree = revision[0].as_tree(work_tree.branch)
+                tree = revision.as_tree(work_tree.branch)
 
                 extra_trees = [work_tree]
                 tree.lock_read()
@@ -833,6 +837,7 @@
                     self.outf.write("Using saved parent location: %s\n" % display_url)
                 location = stored_loc
 
+        revision = _get_one_revision('pull', revision)
         if mergeable is not None:
             if revision is not None:
                 raise errors.BzrCommandError(
@@ -849,11 +854,7 @@
                 branch_to.set_parent(branch_from.base)
 
         if revision is not None:
-            if len(revision) == 1:
-                revision_id = revision[0].as_revision_id(branch_from)
-            else:
-                raise errors.BzrCommandError(
-                    'bzr pull --revision takes one value.')
+            revision_id = revision.as_revision_id(branch_from)
 
         branch_to.lock_write()
         try:
@@ -938,12 +939,9 @@
         if directory is None:
             directory = '.'
         br_from = Branch.open_containing(directory)[0]
+        revision = _get_one_revision('push', revision)
         if revision is not None:
-            if len(revision) == 1:
-                revision_id = revision[0].in_history(br_from).rev_id
-            else:
-                raise errors.BzrCommandError(
-                    'bzr push --revision takes one value.')
+            revision_id = revision.in_history(br_from).rev_id
         else:
             revision_id = br_from.last_revision()
 
@@ -1013,18 +1011,14 @@
     def run(self, from_location, to_location=None, revision=None,
             hardlink=False, stacked=False, standalone=False):
         from bzrlib.tag import _merge_tags_if_possible
-        if revision is None:
-            revision = [None]
-        elif len(revision) > 1:
-            raise errors.BzrCommandError(
-                'bzr branch --revision takes exactly 1 revision value')
 
         accelerator_tree, br_from = bzrdir.BzrDir.open_tree_or_branch(
             from_location)
+        revision = _get_one_revision('branch', revision)
         br_from.lock_read()
         try:
-            if len(revision) == 1 and revision[0] is not None:
-                revision_id = revision[0].as_revision_id(br_from)
+            if revision is not None:
+                revision_id = revision.as_revision_id(br_from)
             else:
                 # FIXME - wt.last_revision, fallback to branch, fall back to
                 # None or perhaps NULL_REVISION to mean copy nothing
@@ -1053,7 +1047,7 @@
             except errors.NoSuchRevision:
                 to_transport.delete_tree('.')
                 msg = "The branch %s has no revision %s." % (from_location,
-                    revision[0])
+                    revision)
                 raise errors.BzrCommandError(msg)
             _merge_tags_if_possible(br_from, branch)
             # If the source branch is stacked, the new branch may
@@ -1110,20 +1104,16 @@
 
     def run(self, branch_location=None, to_location=None, revision=None,
             lightweight=False, files_from=None, hardlink=False):
-        if revision is None:
-            revision = [None]
-        elif len(revision) > 1:
-            raise errors.BzrCommandError(
-                'bzr checkout --revision takes exactly 1 revision value')
         if branch_location is None:
             branch_location = osutils.getcwd()
             to_location = branch_location
         accelerator_tree, source = bzrdir.BzrDir.open_tree_or_branch(
             branch_location)
+        revision = _get_one_revision('checkout', revision)
         if files_from is not None:
             accelerator_tree = WorkingTree.open(files_from)
-        if len(revision) == 1 and revision[0] is not None:
-            revision_id = revision[0].as_revision_id(source)
+        if revision is not None:
+            revision_id = revision.as_revision_id(source)
         else:
             revision_id = None
         if to_location is None:




More information about the bazaar-commits mailing list