Rev 4061: Fix "'null:' not present" error when pushing. (Andrew Bennetts) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri Feb 27 04:33:14 GMT 2009


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

------------------------------------------------------------
revno: 4061
revision-id: pqm at pqm.ubuntu.com-20090227043310-f96id6jsevm31349
parent: pqm at pqm.ubuntu.com-20090227024410-cvgq2458iyz9a2nl
parent: andrew.bennetts at canonical.com-20090227035216-4qth0pxpb4nxjibn
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2009-02-27 04:33:10 +0000
message:
  Fix "'null:' not present" error when pushing. (Andrew Bennetts)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
  bzrlib/tests/branch_implementations/test_create_clone.py test_create_clone.py-20090225031440-8ybpkzojo7cvourv-1
  bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 4053.2.5
    revision-id: andrew.bennetts at canonical.com-20090227035216-4qth0pxpb4nxjibn
    parent: andrew.bennetts at canonical.com-20090227030448-dsx92mev2gv6j2cc
    parent: pqm at pqm.ubuntu.com-20090227024410-cvgq2458iyz9a2nl
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: jam-fix
    timestamp: Fri 2009-02-27 14:52:16 +1100
    message:
      Merge from bzr.dev.
    added:
      bzrlib/tests/test_patches_data/diff-7 diff7-20081201221107-q9f611rir3xx1hdp-1
      bzrlib/tests/test_patches_data/mod-7 mod7-20081201221107-q9f611rir3xx1hdp-2
      bzrlib/tests/test_patches_data/orig-7 orig7-20081201221107-q9f611rir3xx1hdp-3
      doc/en/user-guide/filtered_views.txt filtered_views.txt-20090226100856-a16ba1v97v91ru58-1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/patches.py              patches.py-20050727183609-378c1cc5972ce908
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repofmt/weaverepo.py    presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/smart/bzrdir.py         bzrdir.py-20061122024551-ol0l0o0oofsu9b3t-1
      bzrlib/smart/request.py        request.py-20061108095550-gunadhxmzkdjfeek-1
      bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
      bzrlib/tests/branch_implementations/test_create_clone.py test_create_clone.py-20090225031440-8ybpkzojo7cvourv-1
      bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
      bzrlib/tests/per_repository/test_add_fallback_repository.py test_add_fallback_re-20080215040003-8w9n4ck9uqdxj18m-1
      bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
      bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
      bzrlib/tests/test_patches.py   test_patches.py-20051231203844-f4974d20f6aea09c
      bzrlib/tests/test_remote.py    test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_smart.py     test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
      bzrlib/transport/http/_urllib2_wrappers.py _urllib2_wrappers.py-20060913231729-ha9ugi48ktx481ao-1
      bzrlib/transport/remote.py     ssh.py-20060608202016-c25gvf1ob7ypbus6-1
      doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
      doc/en/tutorials/using_bazaar_with_launchpad.txt using_bazaar_with_lp-20071211073140-7msh8uf9a9h4y9hb-1
      doc/en/user-guide/adv_merging.txt adv_merging.txt-20071213070245-d7u7150lb2hhnvby-1
      doc/en/user-guide/index.txt    index.txt-20060622101119-tgwtdci8z769bjb9-2
      doc/en/user-guide/organizing_branches.txt organizing_branches.-20071123154453-dk2mjhrg1vpjm5w2-3
      doc/en/user-guide/setting_up_email.txt setting_up_email.txt-20060314161707-fd242c8944346173
      doc/en/user-guide/solo_intro.txt solo_workflow.txt-20071121073725-0corxykv5irjal00-7
      doc/en/user-guide/specifying_revisions.txt specifying_revisions.txt-20060314161707-19deb139101bea33
      doc/en/user-guide/undoing_mistakes.txt undoing_mistakes.txt-20071121092300-8fyacngt1w98e5mp-1
      doc/en/user-guide/using_aliases.txt using_aliases.txt-20060314161707-c21d27fa2939e039
      doc/en/user-guide/using_gatekeepers.txt using_gatekeepers.tx-20071123154453-dk2mjhrg1vpjm5w2-5
    ------------------------------------------------------------
    revno: 4053.2.4
    revision-id: andrew.bennetts at canonical.com-20090227030448-dsx92mev2gv6j2cc
    parent: andrew.bennetts at canonical.com-20090227022455-l2tpnkno6zqg5pgg
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: jam-fix
    timestamp: Fri 2009-02-27 14:04:48 +1100
    message:
      Add NEWS entry (and re-sort misplaced entry).
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 4053.2.3
    revision-id: andrew.bennetts at canonical.com-20090227022455-l2tpnkno6zqg5pgg
    parent: andrew.bennetts at canonical.com-20090227020355-4ug515h7cpdztjwj
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: jam-fix
    timestamp: Fri 2009-02-27 13:24:55 +1100
    message:
      Fix some nits.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/branch_implementations/test_create_clone.py test_create_clone.py-20090225031440-8ybpkzojo7cvourv-1
    ------------------------------------------------------------
    revno: 4053.2.2
    revision-id: andrew.bennetts at canonical.com-20090227020355-4ug515h7cpdztjwj
    parent: andrew.bennetts at canonical.com-20090226083034-exogvcdjxu7xf8lc
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: jam-fix
    timestamp: Fri 2009-02-27 13:03:55 +1100
    message:
      Better fix, with test.
    modified:
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/branch_implementations/test_create_clone.py test_create_clone.py-20090225031440-8ybpkzojo7cvourv-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 4053.2.1
    revision-id: andrew.bennetts at canonical.com-20090226083034-exogvcdjxu7xf8lc
    parent: pqm at pqm.ubuntu.com-20090225235242-3h3yxyd8smf6b0g2
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: jam-fix
    timestamp: Thu 2009-02-26 19:30:34 +1100
    message:
      Quick fix for 'null: not in present in ...' bug when pushing via HPSS.
    modified:
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
=== modified file 'NEWS'
--- a/NEWS	2009-02-27 02:44:10 +0000
+++ b/NEWS	2009-02-27 03:52:16 +0000
@@ -64,16 +64,20 @@
 
   BUG FIXES:
 
+    * ``bzr missing`` now uses ``Repository.get_revision_delta()`` rather
+      than fetching trees and determining a delta itself. (Jelmer
+      Vernooij, #315048)
+
+    * ``bzr push`` to a smart server no longer causes "Revision
+      {set([('null:',)])} not present ..." errors when the branch has
+      multiple root revisions. (Andrew Bennetts, #317654)
+
     * ``bzr shelve`` now properly handle patches with no terminating newline.
       (Benoît PIERRE, #303569)
 
     * ``bzr unshelve`` gives a more palatable error if passed a non-integer
       shelf id. (Daniel Watkins)
 
-    * ``bzr missing`` now uses ``Repository.get_revision_delta()`` rather
-      than fetching trees and determining a delta itself. (Jelmer
-      Vernooij, #315048)
-
     * Export now handles files that are not present in the tree.
       (James Westby, #174539)
 

=== modified file 'bzrlib/graph.py'
--- a/bzrlib/graph.py	2009-02-23 15:29:35 +0000
+++ b/bzrlib/graph.py	2009-02-27 02:24:55 +0000
@@ -1415,7 +1415,7 @@
                     stop_parents.add(rev_id)
             self._next_query.difference_update(stop_parents)
         self._stopped_keys.update(stopped)
-        self._stopped_keys.update(revisions - set([revision.NULL_REVISION]))
+        self._stopped_keys.update(revisions)
         return stopped
 
     def start_searching(self, revisions):

=== modified file 'bzrlib/tests/branch_implementations/test_create_clone.py'
--- a/bzrlib/tests/branch_implementations/test_create_clone.py	2009-02-25 22:17:25 +0000
+++ b/bzrlib/tests/branch_implementations/test_create_clone.py	2009-02-27 03:52:16 +0000
@@ -17,8 +17,10 @@
 """Tests for branch.create_clone behaviour."""
 
 from bzrlib.branch import Branch
+from bzrlib import errors
+from bzrlib import remote
+from bzrlib import tests
 from bzrlib.tests.branch_implementations.test_branch import TestCaseWithBranch
-from bzrlib import remote
 
 
 class TestCreateClone(TestCaseWithBranch):
@@ -57,6 +59,22 @@
         self.assertEqual(revid, result.last_revision())
         self.assertEqual(trunk.base, result.get_stacked_on_url())
 
+    def test_create_clone_of_multiple_roots(self):
+        try:
+            builder = self.make_branch_builder('local')
+        except (errors.TransportNotPossible, errors.UninitializableFormat):
+            raise tests.TestNotApplicable('format not directly constructable')
+        builder.start_series()
+        builder.build_snapshot('rev1', None, [
+            ('add', ('', 'root-id', 'directory', ''))])
+        builder.build_snapshot('rev2', ['rev1'], [])
+        builder.build_snapshot('other', None, [
+            ('add', ('', 'root-id', 'directory', ''))])
+        builder.build_snapshot('rev3', ['rev2', 'other'], [])
+        builder.finish_series()
+        local = builder.get_branch()
+        local.bzrdir.clone(self.get_url('remote'), revision_id='rev3')
+
     def assertBranchHookBranchIsStacked(self, pre_change_params):
         # Just calling will either succeed or fail.
         pre_change_params.branch.get_stacked_on_url()

=== modified file 'bzrlib/tests/test_graph.py'
--- a/bzrlib/tests/test_graph.py	2009-02-23 15:29:35 +0000
+++ b/bzrlib/tests/test_graph.py	2009-02-27 02:03:55 +0000
@@ -1080,7 +1080,8 @@
         search = graph._make_breadth_first_searcher(['head'])
         expected = [
             # NULL_REVISION and ghost1 have not been returned
-            (set(['head']), (set(['head']), set(['child', 'ghost1']), 1),
+            (set(['head']),
+             (set(['head']), set(['child', NULL_REVISION, 'ghost1']), 1),
              ['head'], None, [NULL_REVISION, 'ghost1']),
             # ghost1 has been returned, NULL_REVISION is to be returned in the
             # next iteration.




More information about the bazaar-commits mailing list