Rev 4405: (Jelmer) Support ghosts in mainline in a couple more Bazaar commands. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Jun 4 00:23:00 BST 2009
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 4405
revision-id: pqm at pqm.ubuntu.com-20090603232255-k37f1z7z1ohhmklh
parent: pqm at pqm.ubuntu.com-20090603222259-m1s1zm751w82h7bj
parent: jelmer at samba.org-20090603222922-h36pmqz2sblx7ehw
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2009-06-04 00:22:55 +0100
message:
(Jelmer) Support ghosts in mainline in a couple more Bazaar commands.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/reconcile.py reweave_inventory.py-20051108164726-1e5e0934febac06e
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/branch_implementations/test_check.py test_check.py-20080429151303-1sbfclxhddpz0tnj-1
bzrlib/tests/branch_implementations/test_reconcile.py test_reconcile.py-20080429161555-qlmccuyeyt6pvho7-1
bzrlib/tests/branch_implementations/test_sprout.py test_sprout.py-20070521151739-b8t8p7axw1h966ws-1
bzrlib/tests/per_repository/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
------------------------------------------------------------
revno: 4266.3.13
revision-id: jelmer at samba.org-20090603222922-h36pmqz2sblx7ehw
parent: jelmer at samba.org-20090603213143-0196mgzgefgvd5no
parent: pqm at pqm.ubuntu.com-20090603222259-m1s1zm751w82h7bj
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Thu 2009-06-04 00:29:22 +0200
message:
merge bzr.dev.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/tests/per_repository/test_reconcile.py test_reconcile.py-20060223022332-572ef70a3288e369
------------------------------------------------------------
revno: 4266.3.12
revision-id: jelmer at samba.org-20090603213143-0196mgzgefgvd5no
parent: jelmer at samba.org-20090602012737-fe84sh3rwwnowg2l
parent: pqm at pqm.ubuntu.com-20090603210845-kkjz982mww9ahwml
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Wed 2009-06-03 23:31:43 +0200
message:
Merge bzr.dev.
added:
bzrlib/send.py send.py-20090521192735-j7cdb33ykmtmzx4w-1
bzrlib/tests/per_repository_reference/test_fetch.py test_fetch.py-20090511214909-25pkgmoam913lrji-1
bzrlib/tests/per_repository_reference/test_initialize.py test_initialize.py-20090527083941-4rz2urcthjet5e2i-1
bzrlib/tests/per_repository_reference/test_unlock.py test_unlock.py-20090526160031-14lvypj5pbrndnyz-1
modified:
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/foreign.py foreign.py-20081112170002-olsxmandkk8qyfuq-1
bzrlib/groupcompress.py groupcompress.py-20080705181503-ccbxd6xuy1bdnrpu-8
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/groupcompress_repo.py repofmt.py-20080715094215-wp1qfvoo7093c8qr-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/serializer.py serializer.py-20090402143702-wmkh9cfjhwpju0qi-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
bzrlib/tests/inventory_implementations/basics.py basics.py-20070903044446-kdjwbiu1p1zi9phs-1
bzrlib/tests/per_repository/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/per_repository/test_fileid_involved.py test_file_involved.py-20051215205901-728a172d1014daaa
bzrlib/tests/per_repository/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
bzrlib/tests/per_repository_reference/__init__.py __init__.py-20080220025549-nnm2s80it1lvcwnc-2
bzrlib/tests/per_repository_reference/test_default_stacking.py test_default_stackin-20090311055345-9ajahgm58oq3wh6h-1
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_foreign.py test_foreign.py-20081125004048-ywb901edgp9lluxo-1
bzrlib/tests/test_graph.py test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
bzrlib/tests/test_groupcompress.py test_groupcompress.p-20080705181503-ccbxd6xuy1bdnrpu-13
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_serializer.py test_serializer.py-20090403213933-q6x117y8t9fbeyoz-1
bzrlib/tests/test_ui.py test_ui.py-20051130162854-458e667a7414af09
bzrlib/ui/__init__.py ui.py-20050824083933-8cf663c763ba53a9
------------------------------------------------------------
revno: 4266.3.11
revision-id: jelmer at samba.org-20090602012737-fe84sh3rwwnowg2l
parent: jelmer at samba.org-20090602011756-pbqqjy3g7c4oyx4c
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Tue 2009-06-02 03:27:37 +0200
message:
Support reconcile on branches with ghosts in their mainline.
modified:
bzrlib/reconcile.py reweave_inventory.py-20051108164726-1e5e0934febac06e
bzrlib/tests/branch_implementations/test_reconcile.py test_reconcile.py-20080429161555-qlmccuyeyt6pvho7-1
bzrlib/tests/per_repository/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
------------------------------------------------------------
revno: 4266.3.10
revision-id: jelmer at samba.org-20090602011756-pbqqjy3g7c4oyx4c
parent: jelmer at samba.org-20090602011514-ywtix8wlbt6v0lo1
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Tue 2009-06-02 03:17:56 +0200
message:
Remove no longer valid comment about catching KeyError.
modified:
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
------------------------------------------------------------
revno: 4266.3.9
revision-id: jelmer at samba.org-20090602011514-ywtix8wlbt6v0lo1
parent: jelmer at samba.org-20090602004546-h1h5igmuym84gni6
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Tue 2009-06-02 03:15:14 +0200
message:
Don't skip other checks when finding ghosts in mainline.
modified:
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
------------------------------------------------------------
revno: 4266.3.8
revision-id: jelmer at samba.org-20090602004546-h1h5igmuym84gni6
parent: jelmer at samba.org-20090528160439-4z0xlrk5nejobm7q
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Tue 2009-06-02 02:45:46 +0200
message:
Consistently use find_distance_to_null.
modified:
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
------------------------------------------------------------
revno: 4266.3.7
revision-id: jelmer at samba.org-20090528160439-4z0xlrk5nejobm7q
parent: jelmer at samba.org-20090528155916-zmw46laj5sb1r6kj
parent: pqm at pqm.ubuntu.com-20090528153456-c5piafs9t37b0nz4
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Thu 2009-05-28 18:04:39 +0200
message:
Merge bzr.dev.
removed:
bzrlib/tests/test_http_implementations.py test_http_implementa-20071218210003-65nh81gglcfvurw6-1
bzrlib/util/configobj/docs/ docs-20051018184548-5eb1575f28e645ab
bzrlib/util/configobj/docs/BSD-LICENSE.txt BSDLICENSE.txt-20051018184548-29b89ff3102657f5
bzrlib/util/configobj/docs/configobj.txt configobj.txt-20051018184548-4949b5f17e6a19c7
bzrlib/util/configobj/docs/validate.txt validate.txt-20051018184548-9e0e5ad913e258f5
added:
bzrlib/_rio_py.py _rio_py.py-20090514104624-ied3d39oju8anmfz-1
bzrlib/_rio_pyx.pyx _rio_pyx.pyx-20090514104636-8203jcqvfny56yrd-1
bzrlib/tests/blackbox/test_dpush.py test_dpush.py-20090108125928-st1td6le59g0vyv2-1
bzrlib/tests/blackbox/test_reference.py test_reference.py-20090428205614-7lo1hc2etrwd73x3-1
bzrlib/tests/per_interbranch/test_pull.py test_pull.py-20090227164435-0rtbqqyuh1rmm82n-1
bzrlib/tests/per_interbranch/test_push.py test_push.py-20090330192649-pca31sb2ubbtcs15-1
bzrlib/tests/test__rio.py test__rio.py-20090514191748-cy74k8yj46gzoeq6-1
renamed:
bzrlib/tests/workingtree_implementations/test_get_file_with_stat.py => bzrlib/tests/tree_implementations/test_get_file_with_stat.py test_get_file_with_s-20080922035909-lhdovrr36jpxmu0v-1
doc/developers/HACKING.txt => doc/en/developer-guide/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/_btree_serializer_c.pyx _parse_btree_c.pyx-20080703034413-3q25bklkenti3p8p-2
bzrlib/_groupcompress_py.py _groupcompress_py.py-20090324110021-j63s399f4icrgw4p-1
bzrlib/annotate.py annotate.py-20050922133147-7c60541d2614f022
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/branchbuilder.py branchbuilder.py-20070427022007-zlxpqz2lannhk6y8-1
bzrlib/btree_index.py index.py-20080624222253-p0x5f92uyh5hw734-7
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/chk_map.py chk_map.py-20081001014447-ue6kkuhofvdecvxa-1
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/filters/__init__.py __init__.py-20080416080515-mkxl29amuwrf6uir-2
bzrlib/filters/eol.py eol.py-20090327060429-todzdjmqt3bpv5r8-1
bzrlib/foreign.py foreign.py-20081112170002-olsxmandkk8qyfuq-1
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/groupcompress.py groupcompress.py-20080705181503-ccbxd6xuy1bdnrpu-8
bzrlib/hashcache.py hashcache.py-20050706091756-fe3a8cc1143ff24f
bzrlib/help_topics/en/eol.txt eol.txt-20090327060429-todzdjmqt3bpv5r8-3
bzrlib/help_topics/en/rules.txt rules.txt-20080516063844-ghr5l6pvvrhiycun-1
bzrlib/hooks.py hooks.py-20070325015548-ix4np2q0kd8452au-1
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lock.py lock.py-20050527050856-ec090bb51bc03349
bzrlib/lockdir.py lockdir.py-20060220222025-98258adf27fbdda3
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/lru_cache.py lru_cache.py-20070119165515-tlw203kuwh0id5gv-1
bzrlib/mail_client.py mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/mutabletree.py mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
bzrlib/plugins/launchpad/account.py account.py-20071011033320-50y6vfftywf4yllw-1
bzrlib/plugins/netrc_credential_store/__init__.py __init__.py-20081006090402-hd75m8kcrrm0vlz1-1
bzrlib/push.py push.py-20080606021927-5fe39050e8xne9un-1
bzrlib/reconfigure.py reconfigure.py-20070908040425-6ykgo7escxhyrg9p-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/groupcompress_repo.py repofmt.py-20080715094215-wp1qfvoo7093c8qr-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revision.py revision.py-20050309040759-e77802c08f3999d5
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/rio.py rio.py-20051128032247-770b120b34dfff60
bzrlib/rules.py properties.py-20080506032617-9k06uqalkf09ck0z-1
bzrlib/smart/branch.py branch.py-20061124031907-mzh3pla28r83r97f-1
bzrlib/smart/bzrdir.py bzrdir.py-20061122024551-ol0l0o0oofsu9b3t-1
bzrlib/smart/medium.py medium.py-20061103051856-rgu2huy59fkz902q-1
bzrlib/smart/message.py message.py-20080222013625-ncqmh3nrxjkxab87-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/smart/request.py request.py-20061108095550-gunadhxmzkdjfeek-1
bzrlib/smart/server.py server.py-20061110062051-chzu10y32vx8gvur-1
bzrlib/smtp_connection.py smtp_connection.py-20070618204456-nu6wag1ste4biuk2-1
bzrlib/switch.py switch.py-20071116011000-v5lnw7d2wkng9eux-1
bzrlib/tag.py tag.py-20070212110532-91cw79inah2cfozx-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
bzrlib/tests/blackbox/test_bound_branches.py test_bound_branches.py-20051109215527-2373188ad566c205
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
bzrlib/tests/blackbox/test_filesystem_cicp.py test_filesystem_cicp-20081028010456-vclkg401m81keaxc-1
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/blackbox/test_logformats.py test_logformats.py-20060216104208-ba5a16c83480b7e4
bzrlib/tests/blackbox/test_ls.py test_ls.py-20060712232047-0jraqpecwngee12y-1
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
bzrlib/tests/blackbox/test_reconfigure.py test_reconfigure.py-20070908173426-khfo5fi2rgzgtwj3-1
bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
bzrlib/tests/blackbox/test_serve.py test_serve.py-20060913064329-8t2pvmsikl4s3xhl-1
bzrlib/tests/blackbox/test_switch.py test_switch.py-20071122111948-0c5en6uz92bwl76h-1
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_create_clone.py test_create_clone.py-20090225031440-8ybpkzojo7cvourv-1
bzrlib/tests/branch_implementations/test_locking.py test_locking.py-20060707151933-tav3o2hpibwi53u4-4
bzrlib/tests/branch_implementations/test_parent.py test_parent.py-20050830052751-5e62766623c32222
bzrlib/tests/branch_implementations/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
bzrlib/tests/branch_implementations/test_sprout.py test_sprout.py-20070521151739-b8t8p7axw1h966ws-1
bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/http_utils.py HTTPTestUtil.py-20050914180604-247d3aafb7a43343
bzrlib/tests/interrepository_implementations/__init__.py __init__.py-20060220054744-baf49a1f88f17b1a
bzrlib/tests/interrepository_implementations/test_fetch.py test_fetch.py-20080425213627-j60cjh782ufm83ry-1
bzrlib/tests/lock_helpers.py LockHelpers.py-20060707151933-tav3o2hpibwi53u4-1
bzrlib/tests/per_interbranch/__init__.py __init__.py-20090225010018-l7w4uvvt73ea2vj9-1
bzrlib/tests/per_interbranch/test_update_revisions.py test_update_revision-20090225011043-7u1jnapdeuj07rre-1
bzrlib/tests/per_repository/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
bzrlib/tests/per_repository/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/per_repository/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
bzrlib/tests/test__dirstate_helpers.py test_dirstate_helper-20070504035751-jsbn00xodv0y1eve-2
bzrlib/tests/test__groupcompress.py test__groupcompress_-20080724145854-koifwb7749cfzrvj-1
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_branchbuilder.py test_branchbuilder.p-20070427022007-zlxpqz2lannhk6y8-2
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_chk_map.py test_chk_map.py-20081001014447-ue6kkuhofvdecvxa-2
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_dirstate.py test_dirstate.py-20060728012006-d6mvoihjb3je9peu-2
bzrlib/tests/test_eol_filters.py test_eol_filters.py-20090327060429-todzdjmqt3bpv5r8-2
bzrlib/tests/test_errors.py test_errors.py-20060210110251-41aba2deddf936a8
bzrlib/tests/test_export.py test_export.py-20090220201010-tpbxssdnezsvu9pk-1
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_foreign.py test_foreign.py-20081125004048-ywb901edgp9lluxo-1
bzrlib/tests/test_ftp_transport.py test_aftp_transport.-20060823221619-98mwjzxtwtkt527k-1
bzrlib/tests/test_groupcompress.py test_groupcompress.p-20080705181503-ccbxd6xuy1bdnrpu-13
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_lockable_files.py test_lockable_files.py-20051225183927-365c7fd99591caf1
bzrlib/tests/test_lockdir.py test_lockdir.py-20060220222025-33d4221569a3d600
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_lru_cache.py test_lru_cache.py-20070119165535-hph6rk4h9rzy4180-1
bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
bzrlib/tests/test_merge.py testmerge.py-20050905070950-c1b5aa49ff911024
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-2
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_rename_map.py test_rename_map.py-20090312140439-xexkkmjlg2enbohc-2
bzrlib/tests/test_revision.py testrevision.py-20050804210559-46f5e1eb67b01289
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_shelf.py test_prepare_shelf.p-20081005181341-n74qe6gu1e65ad4v-2
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_smart_request.py test_smart_request.p-20090211070731-o38wayv3asm25d6a-1
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
bzrlib/tests/test_source.py test_source.py-20051207061333-a58dea6abecc030d
bzrlib/tests/test_switch.py test_switch.py-20071116011000-v5lnw7d2wkng9eux-2
bzrlib/tests/test_tag.py test_tag.py-20070212110532-91cw79inah2cfozx-2
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/test_ui.py test_ui.py-20051130162854-458e667a7414af09
bzrlib/tests/test_upgrade.py test_upgrade.py-20051004040251-555fe1d2bae1bc71
bzrlib/tests/test_urlutils.py test_urlutils.py-20060502192900-46b1f9579987cf9c
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
bzrlib/tests/tree_implementations/test_get_symlink_target.py test_get_symlink_tar-20070225165554-ickod3w3t7u0zzqh-1
bzrlib/tests/tree_implementations/test_inv.py test_inv.py-20070312023226-0cdvk5uwhutis9vg-1
bzrlib/tests/tree_implementations/test_path_content_summary.py test_path_content_su-20070904100855-3vrwedz6akn34kl5-1
bzrlib/tests/tree_implementations/test_test_trees.py test_tree_trees.py-20060720091921-3nwi5h21lf06vf5p-1
bzrlib/tests/tree_implementations/test_walkdirs.py test_walkdirs.py-20060729160421-gmjnkotqgxdh98ce-1
bzrlib/tests/workingtree_implementations/__init__.py __init__.py-20060203003124-b2aa5aca21a8bfad
bzrlib/tests/workingtree_implementations/test_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/ftp/__init__.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/ftp/_gssapi.py _gssapi.py-20080611190840-7ejrtp884bk5eu72-2
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
bzrlib/transport/http/_urllib2_wrappers.py _urllib2_wrappers.py-20060913231729-ha9ugi48ktx481ao-1
bzrlib/transport/ssh.py ssh.py-20060824042150-0s9787kng6zv1nwq-1
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/ui/__init__.py ui.py-20050824083933-8cf663c763ba53a9
bzrlib/ui/text.py text.py-20051130153916-2e438cffc8afc478
bzrlib/urlutils.py urlutils.py-20060502195429-e8a161ecf8fac004
bzrlib/util/configobj/configobj.py configobj.py-20051018184548-06992a2246425e3e
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
bzrlib/xml_serializer.py xml.py-20050309040759-57d51586fdec365d
doc/en/user-guide/installing_bazaar.txt installing_bazaar.tx-20071114035000-q36a9h57ps06uvnl-4
doc/en/user-guide/svn_plugin.txt svn_plugin.txt-20080509065016-cjc90f46407vi9a0-2
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
bzrlib/tests/tree_implementations/test_get_file_with_stat.py test_get_file_with_s-20080922035909-lhdovrr36jpxmu0v-1
doc/en/developer-guide/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 4266.3.6
revision-id: jelmer at samba.org-20090528155916-zmw46laj5sb1r6kj
parent: jelmer at samba.org-20090528152825-gwd32a2le6pl0w20
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Thu 2009-05-28 17:59:16 +0200
message:
Add test for handling ghosts in Branch._synchronize_history if the revision that's being cloned is not the tip.
modified:
bzrlib/tests/branch_implementations/test_sprout.py test_sprout.py-20070521151739-b8t8p7axw1h966ws-1
------------------------------------------------------------
revno: 4266.3.5
revision-id: jelmer at samba.org-20090528152825-gwd32a2le6pl0w20
parent: jelmer at samba.org-20090528152213-efmltfl9kon5jns9
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Thu 2009-05-28 17:28:25 +0200
message:
Add test for ghosts in Repository.iter_reverse_revision_history.
modified:
bzrlib/tests/per_repository/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
------------------------------------------------------------
revno: 4266.3.4
revision-id: jelmer at samba.org-20090528152213-efmltfl9kon5jns9
parent: jelmer at samba.org-20090505124328-nkig1cscg7q5r3pa
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Thu 2009-05-28 17:22:13 +0200
message:
Add tests for ghosts in mainline in check.
modified:
bzrlib/tests/branch_implementations/test_check.py test_check.py-20080429151303-1sbfclxhddpz0tnj-1
------------------------------------------------------------
revno: 4266.3.3
revision-id: jelmer at samba.org-20090505124328-nkig1cscg7q5r3pa
parent: jelmer at samba.org-20090408002149-8fn4g6j5yccv76l3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mainline-ghosts
timestamp: Tue 2009-05-05 14:43:28 +0200
message:
Use find_distance_to_null.
modified:
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
------------------------------------------------------------
revno: 4266.3.2
revision-id: jelmer at samba.org-20090408002149-8fn4g6j5yccv76l3
parent: jelmer at samba.org-20090407203141-yjjovfgbcslac0kg
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzr.dev
timestamp: Wed 2009-04-08 02:21:49 +0200
message:
Cope with ghosts in Branch.check()
modified:
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
------------------------------------------------------------
revno: 4266.3.1
revision-id: jelmer at samba.org-20090407203141-yjjovfgbcslac0kg
parent: pqm at pqm.ubuntu.com-20090407180335-g11gve6533bv8lei
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzr.dev
timestamp: Tue 2009-04-07 22:31:41 +0200
message:
Support cloning of branches with ghosts in the left hand side history.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
=== modified file 'NEWS'
--- a/NEWS 2009-06-03 21:28:52 +0000
+++ b/NEWS 2009-06-03 22:29:22 +0000
@@ -59,6 +59,9 @@
* Reconcile can now deal with text revisions that originated in revisions
that are ghosts. (Jelmer Vernooij, #336749)
+* Support cloning of branches with ghosts in the left hand side history.
+ (Jelmer Vernooij, #248540)
+
* The ''bzr diff'' now catches OSError from osutils.rmtree and logs a
helpful message to the trace file, unless the temp directory really was
removed (which would be very strange). Since the diff operation has
=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py 2009-05-29 10:25:37 +0000
+++ b/bzrlib/branch.py 2009-06-03 21:31:43 +0000
@@ -1085,18 +1085,14 @@
source_revno, source_revision_id = self.last_revision_info()
if revision_id is None:
revno, revision_id = source_revno, source_revision_id
- elif source_revision_id == revision_id:
- # we know the revno without needing to walk all of history
- revno = source_revno
else:
- # To figure out the revno for a random revision, we need to build
- # the revision history, and count its length.
- # We don't care about the order, just how long it is.
- # Alternatively, we could start at the current location, and count
- # backwards. But there is no guarantee that we will find it since
- # it may be a merged revision.
- revno = len(list(self.repository.iter_reverse_revision_history(
- revision_id)))
+ graph = self.repository.get_graph()
+ try:
+ revno = graph.find_distance_to_null(revision_id,
+ [(source_revision_id, source_revno)])
+ except errors.GhostRevisionsHaveNoRevno:
+ # Default to 1, if we can't find anything else
+ revno = 1
destination.set_last_revision_info(revno, revision_id)
@needs_read_lock
@@ -1147,10 +1143,18 @@
:return: A BranchCheckResult.
"""
+ ret = BranchCheckResult(self)
mainline_parent_id = None
last_revno, last_revision_id = self.last_revision_info()
- real_rev_history = list(self.repository.iter_reverse_revision_history(
- last_revision_id))
+ real_rev_history = []
+ try:
+ for revid in self.repository.iter_reverse_revision_history(
+ last_revision_id):
+ real_rev_history.append(revid)
+ except errors.RevisionNotPresent:
+ ret.ghosts_in_mainline = True
+ else:
+ ret.ghosts_in_mainline = False
real_rev_history.reverse()
if len(real_rev_history) != last_revno:
raise errors.BzrCheckError('revno does not match len(mainline)'
@@ -1172,7 +1176,7 @@
"parents of {%s}"
% (mainline_parent_id, revision_id))
mainline_parent_id = revision_id
- return BranchCheckResult(self)
+ return ret
def _get_checkout_format(self):
"""Return the most suitable metadir for a checkout of this branch.
@@ -2780,6 +2784,7 @@
def __init__(self, branch):
self.branch = branch
+ self.ghosts_in_mainline = False
def report_results(self, verbose):
"""Report the check results via trace.note.
@@ -2790,6 +2795,8 @@
note('checked branch %s format %s',
self.branch.base,
self.branch._format)
+ if self.ghosts_in_mainline:
+ note('branch contains ghosts in mainline')
class Converter5to6(object):
=== modified file 'bzrlib/reconcile.py'
--- a/bzrlib/reconcile.py 2009-04-09 20:23:07 +0000
+++ b/bzrlib/reconcile.py 2009-06-02 01:27:37 +0000
@@ -137,8 +137,13 @@
def _reconcile_revision_history(self):
repo = self.branch.repository
last_revno, last_revision_id = self.branch.last_revision_info()
- real_history = list(repo.iter_reverse_revision_history(
- last_revision_id))
+ real_history = []
+ try:
+ for revid in repo.iter_reverse_revision_history(
+ last_revision_id):
+ real_history.append(revid)
+ except errors.RevisionNotPresent:
+ pass # Hit a ghost left hand parent
real_history.reverse()
if last_revno != len(real_history):
self.fixed_history = True
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2009-06-01 18:13:46 +0000
+++ b/bzrlib/repository.py 2009-06-03 21:31:43 +0000
@@ -2245,13 +2245,11 @@
while True:
if next_id in (None, _mod_revision.NULL_REVISION):
return
+ try:
+ parents = graph.get_parent_map([next_id])[next_id]
+ except KeyError:
+ raise errors.RevisionNotPresent(next_id, self)
yield next_id
- # Note: The following line may raise KeyError in the event of
- # truncated history. We decided not to have a try:except:raise
- # RevisionNotPresent here until we see a use for it, because of the
- # cost in an inner loop that is by its very nature O(history).
- # Robert Collins 20080326
- parents = graph.get_parent_map([next_id])[next_id]
if len(parents) == 0:
return
else:
=== modified file 'bzrlib/tests/branch_implementations/test_check.py'
--- a/bzrlib/tests/branch_implementations/test_check.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/branch_implementations/test_check.py 2009-05-28 15:22:13 +0000
@@ -67,4 +67,11 @@
result.report_results(verbose=True)
result.report_results(verbose=False)
+ def test_check_detects_ghosts_in_mainline(self):
+ tree = self.make_branch_and_tree('test')
+ tree.set_parent_ids(['thisisaghost'], allow_leftmost_as_ghost=True)
+ r1 = tree.commit('one')
+ r2 = tree.commit('two')
+ result = tree.branch.check()
+ self.assertEquals(True, result.ghosts_in_mainline)
=== modified file 'bzrlib/tests/branch_implementations/test_reconcile.py'
--- a/bzrlib/tests/branch_implementations/test_reconcile.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/branch_implementations/test_reconcile.py 2009-06-02 01:27:37 +0000
@@ -70,3 +70,13 @@
a_branch = self.make_branch('a_branch')
a_branch.reconcile(thorough=False)
a_branch.reconcile(thorough=True)
+
+ def test_reconcile_handles_ghosts_in_revhistory(self):
+ tree = self.make_branch_and_tree('test')
+ tree.set_parent_ids(["spooky"], allow_leftmost_as_ghost=True)
+ r1 = tree.commit('one')
+ r2 = tree.commit('two')
+ tree.branch.set_last_revision_info(2, r2)
+
+ reconciler = tree.branch.reconcile()
+ self.assertEquals([r1, r2], tree.branch.revision_history())
=== modified file 'bzrlib/tests/branch_implementations/test_sprout.py'
--- a/bzrlib/tests/branch_implementations/test_sprout.py 2009-05-06 05:36:28 +0000
+++ b/bzrlib/tests/branch_implementations/test_sprout.py 2009-05-28 16:04:39 +0000
@@ -155,6 +155,14 @@
self.assertEqual(target,
tree.basis_tree().get_symlink_target('link-id'))
+ def test_sprout_with_ghost_in_mainline(self):
+ tree = self.make_branch_and_tree('tree1')
+ tree.set_parent_ids(["spooky"], allow_leftmost_as_ghost=True)
+ tree.add('')
+ tree.commit('msg1', rev_id='rev1')
+ tree.commit('msg2', rev_id='rev2')
+ tree.bzrdir.sprout('target', revision_id='rev1')
+
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/per_repository/test_iter_reverse_revision_history.py'
--- a/bzrlib/tests/per_repository/test_iter_reverse_revision_history.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/per_repository/test_iter_reverse_revision_history.py 2009-06-02 01:27:37 +0000
@@ -145,3 +145,23 @@
repo, 'rev-2-4')
self.assertRevHistoryList(['rev-2-5', 'rev-2-4', 'rev-2-3', 'rev-2-2',
'rev-1-1'], repo, 'rev-2-5')
+
+ def test_ghost(self):
+ tree = self.make_branch_and_memory_tree('tree')
+ tree.lock_write()
+ try:
+ tree.add('')
+ tree.set_parent_ids(['spooky'], allow_leftmost_as_ghost=True)
+ tree.commit('1', rev_id='rev1')
+ tree.commit('2', rev_id='rev2')
+ finally:
+ tree.unlock()
+ iter = tree.branch.repository.iter_reverse_revision_history('rev2')
+ tree.branch.repository.lock_read()
+ try:
+ self.assertEquals('rev2', iter.next())
+ self.assertEquals('rev1', iter.next())
+ self.assertRaises(errors.RevisionNotPresent, iter.next)
+ finally:
+ tree.branch.repository.unlock()
+
More information about the bazaar-commits
mailing list