Rev 4375: (Jelmer) Add child_submit_format option used by 'bzr send'. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu May 21 15:06:47 BST 2009


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

------------------------------------------------------------
revno: 4375
revision-id: pqm at pqm.ubuntu.com-20090521140643-e0igtobdd3k832wb
parent: pqm at pqm.ubuntu.com-20090520182253-iqt2y0uikaxswu56
parent: jelmer at samba.org-20090516143021-23e30hm6znl6l5qz
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2009-05-21 15:06:43 +0100
message:
  (Jelmer) Add child_submit_format option used by 'bzr send'.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
    ------------------------------------------------------------
    revno: 4370.2.1
    revision-id: jelmer at samba.org-20090516143021-23e30hm6znl6l5qz
    parent: pqm at pqm.ubuntu.com-20090516091716-x8ozyp5uuvsgmsfg
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: submit-format
    timestamp: Sat 2009-05-16 16:30:21 +0200
    message:
      Support ``child_submit_format`` option set in the submit branch in "bzr send".
      This option can be set to the send format to use.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
=== modified file 'NEWS'
--- a/NEWS	2009-05-18 21:48:44 +0000
+++ b/NEWS	2009-05-21 14:06:43 +0000
@@ -65,6 +65,10 @@
   branches (svn, git) without setting custom bzr-specific metadata.
   (Jelmer Vernooij)
 
+* ``bzr send`` will now check the ``child_submit_format`` setting in
+  the submit branch to determine what format to use, if none was 
+  specified on the command-line.  (Jelmer Vernooij)
+
 Improvements
 ************
 

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-05-16 08:21:11 +0000
+++ b/bzrlib/builtins.py	2009-05-16 14:30:21 +0000
@@ -4891,7 +4891,7 @@
 
     def run(self, submit_branch=None, public_branch=None, no_bundle=False,
             no_patch=False, revision=None, remember=False, output=None,
-            format='4', mail_to=None, message=None, body=None, **kwargs):
+            format=None, mail_to=None, message=None, body=None, **kwargs):
         return self._run(submit_branch, revision, public_branch, remember,
                          format, no_bundle, no_patch, output,
                          kwargs.get('from', '.'), mail_to, message, body)
@@ -4936,9 +4936,12 @@
                         'changes to submit.', remembered_submit_branch,
                         submit_branch)
 
-            if mail_to is None:
+            if mail_to is None or format is None:
                 submit_config = Branch.open(submit_branch).get_config()
-                mail_to = submit_config.get_user_option("child_submit_to")
+                if mail_to is None:
+                    mail_to = submit_config.get_user_option("child_submit_to")
+                if format is None:
+                    format = submit_config.get_user_option("child_submit_format")
 
             stored_public_branch = branch.get_public_branch()
             if public_branch is None:
@@ -4961,6 +4964,8 @@
                 revision_id = branch.last_revision()
             if revision_id == NULL_REVISION:
                 raise errors.BzrCommandError('No revisions to submit.')
+            if format is None:
+                format = '4'
             if format == '4':
                 directive = merge_directive.MergeDirective2.from_objects(
                     branch.repository, revision_id, time.time(),
@@ -4985,6 +4990,9 @@
                     osutils.local_time_offset(), submit_branch,
                     public_branch=public_branch, patch_type=patch_type,
                     message=message)
+            else:
+                raise errors.BzrCommandError("No such send format '%s'." % 
+                                             format)
 
             if output is None:
                 directive.compose_merge_request(mail_client, mail_to, body,
@@ -5065,7 +5073,7 @@
 
     def run(self, submit_branch=None, public_branch=None, no_bundle=False,
             no_patch=False, revision=None, remember=False, output=None,
-            format='4', **kwargs):
+            format=None, **kwargs):
         if output is None:
             output = '-'
         return self._run(submit_branch, revision, public_branch, remember,

=== modified file 'bzrlib/tests/blackbox/test_send.py'
--- a/bzrlib/tests/blackbox/test_send.py	2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/blackbox/test_send.py	2009-05-16 14:30:21 +0000
@@ -238,6 +238,27 @@
         self.run_bzr_error(['Bad value .* for option .format.'],
                             'send -f branch -o- --format=0.999')[0]
 
+    def test_format_child_option(self):
+        self.make_trees()
+        parent = _mod_branch.Branch.open('parent')
+        parent.get_config().set_user_option('child_submit_format', '4')
+        s = StringIO(self.run_bzr('send -f branch -o-')[0])
+        md = merge_directive.MergeDirective.from_lines(s.readlines())
+        self.assertIs(merge_directive.MergeDirective2, md.__class__)
+        parent.get_config().set_user_option('child_submit_format', '0.9')
+        s = StringIO(self.run_bzr('send -f branch -o-')[0])
+        md = merge_directive.MergeDirective.from_lines(s.readlines())
+        self.assertContainsRe(md.get_raw_bundle().splitlines()[0],
+            '# Bazaar revision bundle v0.9')
+        s = StringIO(self.run_bzr('bundle -f branch -o-')[0])
+        md = merge_directive.MergeDirective.from_lines(s.readlines())
+        self.assertContainsRe(md.get_raw_bundle().splitlines()[0],
+            '# Bazaar revision bundle v0.9')
+        self.assertIs(merge_directive.MergeDirective, md.__class__)
+        parent.get_config().set_user_option('child_submit_format', '0.999')
+        self.run_bzr_error(["No such send format '0.999'"],
+                            'send -f branch -o-')[0]
+
     def test_message_option(self):
         self.make_trees()
         self.run_bzr('send', retcode=3)




More information about the bazaar-commits mailing list