Rev 2784: Merge bzr.dev in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Tue Sep 25 22:42:41 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2784
revision-id: robertc at robertcollins.net-20070925214206-vvvlpk1ucjpkd0ig
parent: robertc at robertcollins.net-20070925055346-pbpuxhgnnyas1i9q
parent: pqm at pqm.ubuntu.com-20070925205148-yd27v1odc65uql59
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Wed 2007-09-26 07:42:06 +1000
message:
Merge bzr.dev
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/blackbox/test_revert.py test_revert.py-20060124160917-485ce9de629c182c
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.40
revision-id: pqm at pqm.ubuntu.com-20070925205148-yd27v1odc65uql59
parent: pqm at pqm.ubuntu.com-20070925201921-vjahqpm8bfx6bbvn
parent: bialix at ukr.net-20070925193251-tyn89934php66ney
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 21:51:48 +0100
message:
separate word (dev/candidate) in version info with dots
modified:
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.37.1.1
revision-id: bialix at ukr.net-20070925193251-tyn89934php66ney
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
parent: bialix at ukr.net-20070913093037-n8bp84n8kcifkvqu
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: dotted.version.info
timestamp: Tue 2007-09-25 22:32:51 +0300
message:
merge with bzr.dev
modified:
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.9.3.1
revision-id: bialix at ukr.net-20070913093037-n8bp84n8kcifkvqu
parent: pqm at pqm.ubuntu.com-20070911055622-a3060rj7l0iy38l2
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: dotted.version
timestamp: Thu 2007-09-13 12:30:37 +0300
message:
separate word (dev/candidate) in version info with dots
modified:
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.39
revision-id: pqm at pqm.ubuntu.com-20070925201921-vjahqpm8bfx6bbvn
parent: pqm at pqm.ubuntu.com-20070925194602-h8z36snrc8eqjj4j
parent: bialix at ukr.net-20070925192314-emlzeasnptqpvd1b
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 21:19:21 +0100
message:
test for bug #140419
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.8.2.4
revision-id: bialix at ukr.net-20070925192314-emlzeasnptqpvd1b
parent: bialix at ukr.net-20070925191741-u1ak81l763dsym0w
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: bugtest.140419
timestamp: Tue 2007-09-25 22:23:14 +0300
message:
merge bzr.dev
added:
bzrlib/tests/tree_implementations/test_path_content_summary.py test_path_content_su-20070904100855-3vrwedz6akn34kl5-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/multiparent.py __init__.py-20070410133617-n1jdhcc1n1mibarp-1
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_reconfigure.py test_reconfigure.py-20070908173426-khfo5fi2rgzgtwj3-1
bzrlib/tests/blackbox/test_revert.py test_revert.py-20060124160917-485ce9de629c182c
bzrlib/tests/blackbox/test_too_much.py blackbox.py-20050620052131-a7370d756399f615
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_info.py test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.8.2.3
revision-id: bialix at ukr.net-20070925191741-u1ak81l763dsym0w
parent: bialix at ukr.net-20070922172916-yzl05wpf8ye852gw
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: bugtest.140419
timestamp: Tue 2007-09-25 22:17:41 +0300
message:
typo
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.8.2.2
revision-id: bialix at ukr.net-20070922172916-yzl05wpf8ye852gw
parent: bialix at ukr.net-20070920093025-cy85a36ry1xad131
parent: pqm at pqm.ubuntu.com-20070921081743-jhdchcp1wiwmw0jv
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: bugtest.140419
timestamp: Sat 2007-09-22 20:29:16 +0300
message:
Bug #140419 fixed by Robert Collins
added:
doc/developers/authentication-ring.txt authring.txt-20070718200437-q5tdik0ne6lor86d-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/annotate.py annotate.py-20050922133147-7c60541d2614f022
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/HttpServer.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_exceptions.py test_exceptions.py-20060604211237-yi2cxg0ose3xk4id-1
bzrlib/tests/interversionedfile_implementations/test_join.py test_join.py-20060302012326-9b5e9b0f0a03fedc
bzrlib/tests/inventory_implementations/basics.py basics.py-20070903044446-kdjwbiu1p1zi9phs-1
bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_weave.py testknit.py-20050627023648-9833cc5562ffb785
bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/tuned_gzip.py tuned_gzip.py-20060407014720-5aadc518e928e8d2
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/weave.py knit.py-20050627021749-759c29984154256b
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.8.2.1
revision-id: bialix at ukr.net-20070920093025-cy85a36ry1xad131
parent: pqm at pqm.ubuntu.com-20070919101753-4e8wasie12tewyjv
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: bugtest.140419
timestamp: Thu 2007-09-20 12:30:25 +0300
message:
XFAIL test for bug #140419
modified:
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.38
revision-id: pqm at pqm.ubuntu.com-20070925194602-h8z36snrc8eqjj4j
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
parent: bialix at ukr.net-20070925190431-latvmyau7wq0ny90
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 20:46:02 +0100
message:
option -c for merge command (bialix,r=ian)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.14.5.3
revision-id: bialix at ukr.net-20070925190431-latvmyau7wq0ny90
parent: bialix at ukr.net-20070925190148-otovr0vsac3h9nps
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Tue 2007-09-25 22:04:31 +0300
message:
merge bzr.dev
added:
bzrlib/tests/tree_implementations/test_path_content_summary.py test_path_content_su-20070904100855-3vrwedz6akn34kl5-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/multiparent.py __init__.py-20070410133617-n1jdhcc1n1mibarp-1
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_exceptions.py test_exceptions.py-20060604211237-yi2cxg0ose3xk4id-1
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_reconfigure.py test_reconfigure.py-20070908173426-khfo5fi2rgzgtwj3-1
bzrlib/tests/blackbox/test_revert.py test_revert.py-20060124160917-485ce9de629c182c
bzrlib/tests/blackbox/test_too_much.py blackbox.py-20050620052131-a7370d756399f615
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
bzrlib/tests/inventory_implementations/basics.py basics.py-20070903044446-kdjwbiu1p1zi9phs-1
bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_info.py test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
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/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/tuned_gzip.py tuned_gzip.py-20060407014720-5aadc518e928e8d2
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.14.5.2
revision-id: bialix at ukr.net-20070925190148-otovr0vsac3h9nps
parent: bialix at ukr.net-20070922175238-utwpezl628vcusbl
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Tue 2007-09-25 22:01:48 +0300
message:
tweaks suggested by Ian
modified:
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.14.5.1
revision-id: bialix at ukr.net-20070922175238-utwpezl628vcusbl
parent: pqm at pqm.ubuntu.com-20070920125023-upjqmzln7mjtvj1h
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Sat 2007-09-22 20:52:38 +0300
message:
add -c option to merge command
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.37
revision-id: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
parent: pqm at pqm.ubuntu.com-20070925083651-rthie4089wg1wf6o
parent: robertc at robertcollins.net-20070925084129-ca0kd25h23dmunrs
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 10:20:14 +0100
message:
(robertc) Introduce new method Tree.path_content_summary for use in commit refactoring. (Robert Collins)
added:
bzrlib/tests/tree_implementations/test_path_content_summary.py test_path_content_su-20070904100855-3vrwedz6akn34kl5-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.38.1.2
revision-id: robertc at robertcollins.net-20070925084129-ca0kd25h23dmunrs
parent: robertc at robertcollins.net-20070925055031-ybtg84jah7lei4gc
committer: Robert Collins <robertc at robertcollins.net>
branch nick: workingtree
timestamp: Tue 2007-09-25 18:41:29 +1000
message:
Review feedback.
modified:
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.36
revision-id: pqm at pqm.ubuntu.com-20070925083651-rthie4089wg1wf6o
parent: pqm at pqm.ubuntu.com-20070925080109-vqlnacer5iwwmxm8
parent: robertc at robertcollins.net-20070925070807-5chbtkqectn8exun
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 09:36:51 +0100
message:
(robertc) Trivial update for bundle v4 serializers install method to use write groups. (Robert Collins)
modified:
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.31.1.2
revision-id: robertc at robertcollins.net-20070925070807-5chbtkqectn8exun
parent: robertc at robertcollins.net-20070925030942-dt0leks0l5j34r0n
committer: Robert Collins <robertc at robertcollins.net>
branch nick: bundle
timestamp: Tue 2007-09-25 17:08:07 +1000
message:
Review feedback.
modified:
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.31.1.1
revision-id: robertc at robertcollins.net-20070925030942-dt0leks0l5j34r0n
parent: pqm at pqm.ubuntu.com-20070925020712-sf3qg1j3wh0l0hz8
committer: Robert Collins <robertc at robertcollins.net>
branch nick: bundle
timestamp: Tue 2007-09-25 13:09:42 +1000
message:
(robertc) Trivial update for bundle v4 serializers install method to use write groups. (Robert Collins)
modified:
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.35
revision-id: pqm at pqm.ubuntu.com-20070925080109-vqlnacer5iwwmxm8
parent: pqm at pqm.ubuntu.com-20070925072846-g54nzuhu1b5n3xyn
parent: ian.clatworthy at internode.on.net-20070925064345-o8jx2jhis3zh0x9s
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 09:01:09 +0100
message:
Joining of annotated and plain knits (Ian Clatworthy)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.33.1.1
revision-id: ian.clatworthy at internode.on.net-20070925064345-o8jx2jhis3zh0x9s
parent: pqm at pqm.ubuntu.com-20070925041614-j2r43hi8rhw9ci4k
parent: ian.clatworthy at internode.on.net-20070925064104-gdj0iea73g9iy24i
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: ianc-integration2
timestamp: Tue 2007-09-25 16:43:45 +1000
message:
Joining of annotated and plain knits (Ian Clatworthy)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.6
revision-id: ian.clatworthy at internode.on.net-20070925064104-gdj0iea73g9iy24i
parent: ian.clatworthy at internode.on.net-20070925053912-o5wat48zhxc3q5r9
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Tue 2007-09-25 16:41:04 +1000
message:
review tweaks
modified:
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.5
revision-id: ian.clatworthy at internode.on.net-20070925053912-o5wat48zhxc3q5r9
parent: ian.clatworthy at internode.on.net-20070925053538-efa084hz0ejvgh21
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Tue 2007-09-25 15:39:12 +1000
message:
Update NEWS
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.4
revision-id: ian.clatworthy at internode.on.net-20070925053538-efa084hz0ejvgh21
parent: ian.clatworthy at internode.on.net-20070925053507-pcgw7jrgdggp2mq8
parent: pqm at pqm.ubuntu.com-20070925020712-sf3qg1j3wh0l0hz8
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Tue 2007-09-25 15:35:38 +1000
message:
merge bzr.dev
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_too_much.py blackbox.py-20050620052131-a7370d756399f615
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.3
revision-id: ian.clatworthy at internode.on.net-20070925053507-pcgw7jrgdggp2mq8
parent: ian.clatworthy at internode.on.net-20070925045420-33ld2lbxqqwq87fi
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Tue 2007-09-25 15:35:07 +1000
message:
fix up plain-to-annotated knit conversion
modified:
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.2
revision-id: ian.clatworthy at internode.on.net-20070925045420-33ld2lbxqqwq87fi
parent: ian.clatworthy at internode.on.net-20070924131621-19n00l12199eklzp
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Tue 2007-09-25 14:54:20 +1000
message:
use factory methods in annotated-to-plain conversion instead of duplicating format knowledge
modified:
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.4.1
revision-id: ian.clatworthy at internode.on.net-20070924131621-19n00l12199eklzp
parent: pqm at pqm.ubuntu.com-20070924042807-nfjwj1voh6a8zddf
committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
branch nick: bzr.knit-pack-joins
timestamp: Mon 2007-09-24 23:16:21 +1000
message:
Support joining plain knits to annotated knits and vice versa
modified:
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.34
revision-id: pqm at pqm.ubuntu.com-20070925072846-g54nzuhu1b5n3xyn
parent: pqm at pqm.ubuntu.com-20070925041614-j2r43hi8rhw9ci4k
parent: mbp at sourcefrog.net-20070924060049-016r89ialgbf886s
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 08:28:46 +0100
message:
Add unit test for _rollover_trace_maybe
modified:
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.3.1
revision-id: mbp at sourcefrog.net-20070924060049-016r89ialgbf886s
parent: pqm at pqm.ubuntu.com-20070924042807-nfjwj1voh6a8zddf
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: logfile-rollover
timestamp: Mon 2007-09-24 16:00:49 +1000
message:
Add unit test for _rollover_trace_maybe
modified:
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.33
revision-id: pqm at pqm.ubuntu.com-20070925041614-j2r43hi8rhw9ci4k
parent: pqm at pqm.ubuntu.com-20070925032108-y6nxt0xmghqldn4g
parent: robertc at robertcollins.net-20070925033629-2wx6ibqr3zyjkswx
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 05:16:14 +0100
message:
(robertc) Move more weave orientated code out of Repository to weaverepo.py. (Robert Collins)
modified:
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.25.3.2
revision-id: robertc at robertcollins.net-20070925033629-2wx6ibqr3zyjkswx
parent: robertc at robertcollins.net-20070923222217-n7494b41iceeik08
committer: Robert Collins <robertc at robertcollins.net>
branch nick: pack-support
timestamp: Tue 2007-09-25 13:36:29 +1000
message:
Review feedback.
modified:
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.25.3.1
revision-id: robertc at robertcollins.net-20070923222217-n7494b41iceeik08
parent: pqm at pqm.ubuntu.com-20070923210826-t3ymvo1l68z96in1
committer: Robert Collins <robertc at robertcollins.net>
branch nick: pack-support
timestamp: Mon 2007-09-24 08:22:17 +1000
message:
Move various weave specific code out of the base Repository class to weaverepo.py.
modified:
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.32
revision-id: pqm at pqm.ubuntu.com-20070925032108-y6nxt0xmghqldn4g
parent: pqm at pqm.ubuntu.com-20070925020712-sf3qg1j3wh0l0hz8
parent: mbp at sourcefrog.net-20070924051837-6qvnc9tca3y4xflp
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 04:21:08 +0100
message:
Add revert --forget-merges
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_revert.py test_revert.py-20060124160917-485ce9de629c182c
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.31.3.18.1.9.1.2.1.12.1.8.1.26.2.1
revision-id: mbp at sourcefrog.net-20070924051837-6qvnc9tca3y4xflp
parent: pqm at pqm.ubuntu.com-20070924042807-nfjwj1voh6a8zddf
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: forget-merges
timestamp: Mon 2007-09-24 15:18:37 +1000
message:
Add revert --forget-merges
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_revert.py test_revert.py-20060124160917-485ce9de629c182c
=== modified file 'NEWS'
--- a/NEWS 2007-09-25 04:34:15 +0000
+++ b/NEWS 2007-09-25 21:42:06 +0000
@@ -25,7 +25,10 @@
FEATURES:
- * New ``reconfigure`` command (Aaron Bentley)
+ * New ``reconfigure`` command. (Aaron Bentley)
+
+ * New ``revert --forget-merges`` command, which removes the record of a pending
+ merge without affecting the working tree contents. (Martin Pool)
PERFORMANCE:
@@ -54,6 +57,9 @@
* Mutt is now a supported mail client; set ``mail_client=mutt`` in your
bazaar.conf and ``send`` will use mutt. (Keir Mierle)
+ * New option ``-c``/``--change`` for ``merge`` command for cherrypicking
+ changes from one revision. (Alexander Belchenko, #141368)
+
* Show encodings, locale and list of plugins in the traceback message.
(Martin Pool, #63894)
@@ -70,7 +76,10 @@
paramiko.
(Vincent Ladeuil, #59150)
- * Fix commit ordering in corner case (Aaron Bentley, #94975)
+ * Fix commit ordering in corner case. (Aaron Bentley, #94975)
+
+ * Fix long standing bug in partial commit when there are renames
+ left in tree. (Robert Collins, #140419)
* Fix selftest semi-random noise during http related tests.
(Vincent Ladeuil, #140614)
@@ -140,6 +149,9 @@
paths from the root down to each element of selected_file_ids are
returned. (Robert Collins)
+ * Knit joining has been enhanced to support plain to annotated conversion
+ and annotated to plain conversion. (Ian Clatworthy)
+
TESTING:
@@ -419,6 +431,10 @@
incremental addition of data to a file without requiring that all the
data be buffered in memory. (Robert Collins)
+ * New method on ``bzrlib.tree.Tree`` ``path_content_summary`` provides a
+ tuple containing the key information about a path for commit processing
+ to complete. (Robert Collins)
+
* New methods on ``bzrlib.knit.KnitVersionedFile``:
``get_data_stream(versions)``, ``insert_data_stream(stream)`` and
``get_format_signature()``. These provide some infrastructure for
=== modified file 'bzrlib/__init__.py'
--- a/bzrlib/__init__.py 2007-09-12 01:29:21 +0000
+++ b/bzrlib/__init__.py 2007-09-25 19:32:51 +0000
@@ -43,7 +43,7 @@
if version_info[3] == 'final':
version_string = '%d.%d.%d' % version_info[:3]
else:
- version_string = '%d.%d.%d%s%d' % version_info
+ version_string = '%d.%d.%d.%s.%d' % version_info
__version__ = version_string
# allow bzrlib plugins to be imported.
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-09-24 11:05:05 +0000
+++ b/bzrlib/builtins.py 2007-09-25 19:04:31 +0000
@@ -2701,6 +2701,7 @@
_see_also = ['update', 'remerge', 'status-flags']
takes_args = ['branch?']
takes_options = [
+ 'change',
'revision',
Option('force',
help='Merge even if the destination tree has uncommitted changes.'),
@@ -3048,19 +3049,24 @@
_see_also = ['cat', 'export']
takes_options = [
- 'revision',
- Option('no-backup', "Do not save backups of reverted files."),
- ]
+ 'revision',
+ Option('no-backup', "Do not save backups of reverted files."),
+ Option('forget-merges',
+ 'Remove pending merge marker, without changing any files.'),
+ ]
takes_args = ['file*']
- def run(self, revision=None, no_backup=False, file_list=None):
- if file_list is not None:
- if len(file_list) == 0:
- raise errors.BzrCommandError("No files specified")
-
+ def run(self, revision=None, no_backup=False, file_list=None,
+ forget_merges=None):
tree, file_list = tree_files(file_list)
+ if forget_merges:
+ tree.set_parent_ids(tree.get_parent_ids()[:1])
+ else:
+ self._revert_tree_to_revision(tree, revision, file_list, no_backup)
+
+ @staticmethod
+ def _revert_tree_to_revision(tree, revision, file_list, no_backup):
if revision is None:
- # FIXME should be tree.last_revision
rev_id = tree.last_revision()
elif len(revision) != 1:
raise errors.BzrCommandError('bzr revert --revision takes exactly 1 argument')
@@ -3068,7 +3074,7 @@
rev_id = revision[0].in_history(tree.branch).rev_id
pb = ui.ui_factory.nested_progress_bar()
try:
- tree.revert(file_list,
+ tree.revert(file_list,
tree.branch.repository.revision_tree(rev_id),
not no_backup, pb, report_changes=True)
finally:
=== modified file 'bzrlib/bundle/serializer/v4.py'
--- a/bzrlib/bundle/serializer/v4.py 2007-08-28 08:17:05 +0000
+++ b/bzrlib/bundle/serializer/v4.py 2007-09-25 21:42:06 +0000
@@ -472,14 +472,14 @@
"""
self._repository.start_write_group()
try:
- result = self._install_in_group()
+ result = self._install_in_write_group()
except:
self._repository.abort_write_group()
raise
self._repository.commit_write_group()
return result
- def _install_in_group(self):
+ def _install_in_write_group(self):
current_file = None
current_versionedfile = None
pending_file_records = []
=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py 2007-09-24 05:54:25 +0000
+++ b/bzrlib/knit.py 2007-09-25 21:42:06 +0000
@@ -254,7 +254,7 @@
def parse_line_delta_iter(self, lines):
return iter(self.parse_line_delta(lines))
- def parse_line_delta(self, lines, version_id):
+ def parse_line_delta(self, lines, version_id, plain=False):
"""Convert a line based delta into internal representation.
line delta is in the form of:
@@ -263,6 +263,10 @@
revid(utf8) newline\n
internal representation is
(start, end, count, [1..count tuples (revid, newline)])
+
+ :param plain: If True, the lines are returned as a plain
+ list, not as a list of tuples, i.e.
+ (start, end, count, [1..count newline])
"""
result = []
lines = iter(lines)
@@ -274,10 +278,18 @@
return cache.setdefault(origin, origin), text
# walk through the lines parsing.
- for header in lines:
- start, end, count = [int(n) for n in header.split(',')]
- contents = [tuple(next().split(' ', 1)) for i in xrange(count)]
- result.append((start, end, count, contents))
+ # Note that the plain test is explicitly pulled out of the
+ # loop to minimise any performance impact
+ if plain:
+ for header in lines:
+ start, end, count = [int(n) for n in header.split(',')]
+ contents = [next().split(' ', 1)[1] for i in xrange(count)]
+ result.append((start, end, count, contents))
+ else:
+ for header in lines:
+ start, end, count = [int(n) for n in header.split(',')]
+ contents = [tuple(next().split(' ', 1)) for i in xrange(count)]
+ result.append((start, end, count, contents))
return result
def get_fulltext_content(self, lines):
@@ -2169,8 +2181,20 @@
assert isinstance(self.source, KnitVersionedFile)
assert isinstance(self.target, KnitVersionedFile)
+ # If the source and target are mismatched w.r.t. annotations vs
+ # plain, the data needs to be converted accordingly
+ if self.source.factory.annotated == self.target.factory.annotated:
+ converter = None
+ elif self.source.factory.annotated:
+ converter = self._anno_to_plain_converter
+ else:
+ # We're converting from a plain to an annotated knit. This requires
+ # building the annotations from scratch. The generic join code
+ # handles this implicitly so we delegate to it.
+ return super(InterKnit, self).join(pb, msg, version_ids,
+ ignore_missing)
+
version_ids = self._get_source_version_ids(version_ids, ignore_missing)
-
if not version_ids:
return 0
@@ -2228,13 +2252,31 @@
assert version_id == version_id2, 'logic error, inconsistent results'
count = count + 1
pb.update("Joining knit", count, total)
- raw_records.append((version_id, options, parents, len(raw_data)))
+ if converter:
+ size, raw_data = converter(raw_data, version_id, options,
+ parents)
+ else:
+ size = len(raw_data)
+ raw_records.append((version_id, options, parents, size))
raw_datum.append(raw_data)
self.target._add_raw_records(raw_records, ''.join(raw_datum))
return count
finally:
pb.finished()
+ def _anno_to_plain_converter(self, raw_data, version_id, options,
+ parents):
+ """Convert annotated content to plain content."""
+ data, digest = self.source._data._parse_record(version_id, raw_data)
+ if 'fulltext' in options:
+ content = self.source.factory.parse_fulltext(data, version_id)
+ lines = self.target.factory.lower_fulltext(content)
+ else:
+ delta = self.source.factory.parse_line_delta(data, version_id,
+ plain=True)
+ lines = self.target.factory.lower_line_delta(delta)
+ return self.target._data._record_to_data(version_id, digest, lines)
+
InterVersionedFile.register_optimiser(InterKnit)
=== modified file 'bzrlib/repofmt/knitrepo.py'
--- a/bzrlib/repofmt/knitrepo.py 2007-09-25 04:34:15 +0000
+++ b/bzrlib/repofmt/knitrepo.py 2007-09-25 21:42:06 +0000
@@ -137,12 +137,6 @@
raise errors.NoSuchRevision(self, revision_id)
@needs_read_lock
- def get_revision(self, revision_id):
- """Return the Revision object for a named revision"""
- revision_id = osutils.safe_revision_id(revision_id)
- return self.get_revision_reconcile(revision_id)
-
- @needs_read_lock
def get_revision_graph(self, revision_id=None):
"""Return a dictionary containing the revision graph.
=== modified file 'bzrlib/repofmt/weaverepo.py'
--- a/bzrlib/repofmt/weaverepo.py 2007-09-20 22:58:47 +0000
+++ b/bzrlib/repofmt/weaverepo.py 2007-09-25 21:42:06 +0000
@@ -24,9 +24,12 @@
from bzrlib import (
bzrdir,
+ debug,
+ errors,
lockable_files,
lockdir,
osutils,
+ revision as _mod_revision,
weave,
weavefile,
xml5,
@@ -74,6 +77,45 @@
text_store = get_store('text-store')
super(AllInOneRepository, self).__init__(_format, a_bzrdir, a_bzrdir._control_files, _revision_store, control_store, text_store)
+ @needs_read_lock
+ def _all_possible_ids(self):
+ """Return all the possible revisions that we could find."""
+ if 'evil' in debug.debug_flags:
+ mutter_callsite(3, "_all_possible_ids scales with size of history.")
+ return self.get_inventory_weave().versions()
+
+ @needs_read_lock
+ def _all_revision_ids(self):
+ """Returns a list of all the revision ids in the repository.
+
+ These are in as much topological order as the underlying store can
+ present: for weaves ghosts may lead to a lack of correctness until
+ the reweave updates the parents list.
+ """
+ if self._revision_store.text_store.listable():
+ return self._revision_store.all_revision_ids(self.get_transaction())
+ result = self._all_possible_ids()
+ # TODO: jam 20070210 Ensure that _all_possible_ids returns non-unicode
+ # ids. (It should, since _revision_store's API should change to
+ # return utf8 revision_ids)
+ return self._eliminate_revisions_not_present(result)
+
+ def _check_revision_parents(self, revision, inventory):
+ """Private to Repository and Fetch.
+
+ This checks the parentage of revision in an inventory weave for
+ consistency and is only applicable to inventory-weave-for-ancestry
+ using repository formats & fetchers.
+ """
+ weave_parents = inventory.get_parents(revision.revision_id)
+ weave_names = inventory.versions()
+ for parent_id in revision.parent_ids:
+ if parent_id in weave_names:
+ # this parent must not be a ghost.
+ if not parent_id in weave_parents:
+ # but it is a ghost
+ raise errors.CorruptRepository(self)
+
def get_commit_builder(self, branch, parents, config, timestamp=None,
timezone=None, committer=None, revprops=None,
revision_id=None):
@@ -85,6 +127,58 @@
return result
@needs_read_lock
+ def get_revisions(self, revision_ids):
+ revs = self._get_revisions(revision_ids)
+ # weave corruption can lead to absent revision markers that should be
+ # present.
+ # the following test is reasonably cheap (it needs a single weave read)
+ # and the weave is cached in read transactions. In write transactions
+ # it is not cached but typically we only read a small number of
+ # revisions. For knits when they are introduced we will probably want
+ # to ensure that caching write transactions are in use.
+ inv = self.get_inventory_weave()
+ for rev in revs:
+ self._check_revision_parents(rev, inv)
+ return revs
+
+ @needs_read_lock
+ def get_revision_graph(self, revision_id=None):
+ """Return a dictionary containing the revision graph.
+
+ :param revision_id: The revision_id to get a graph from. If None, then
+ the entire revision graph is returned. This is a deprecated mode of
+ operation and will be removed in the future.
+ :return: a dictionary of revision_id->revision_parents_list.
+ """
+ if 'evil' in debug.debug_flags:
+ mutter_callsite(2,
+ "get_revision_graph scales with size of history.")
+ # special case NULL_REVISION
+ if revision_id == _mod_revision.NULL_REVISION:
+ return {}
+ revision_id = osutils.safe_revision_id(revision_id)
+ a_weave = self.get_inventory_weave()
+ all_revisions = self._eliminate_revisions_not_present(
+ a_weave.versions())
+ entire_graph = dict([(node, tuple(a_weave.get_parents(node))) for
+ node in all_revisions])
+ if revision_id is None:
+ return entire_graph
+ elif revision_id not in entire_graph:
+ raise errors.NoSuchRevision(self, revision_id)
+ else:
+ # add what can be reached from revision_id
+ result = {}
+ pending = set([revision_id])
+ while len(pending) > 0:
+ node = pending.pop()
+ result[node] = entire_graph[node]
+ for revision_id in result[node]:
+ if revision_id not in result:
+ pending.add(revision_id)
+ return result
+
+ @needs_read_lock
def is_shared(self):
"""AllInOne repositories cannot be shared."""
return False
@@ -111,6 +205,45 @@
_serializer = xml5.serializer_v5
+ @needs_read_lock
+ def _all_possible_ids(self):
+ """Return all the possible revisions that we could find."""
+ if 'evil' in debug.debug_flags:
+ mutter_callsite(3, "_all_possible_ids scales with size of history.")
+ return self.get_inventory_weave().versions()
+
+ @needs_read_lock
+ def _all_revision_ids(self):
+ """Returns a list of all the revision ids in the repository.
+
+ These are in as much topological order as the underlying store can
+ present: for weaves ghosts may lead to a lack of correctness until
+ the reweave updates the parents list.
+ """
+ if self._revision_store.text_store.listable():
+ return self._revision_store.all_revision_ids(self.get_transaction())
+ result = self._all_possible_ids()
+ # TODO: jam 20070210 Ensure that _all_possible_ids returns non-unicode
+ # ids. (It should, since _revision_store's API should change to
+ # return utf8 revision_ids)
+ return self._eliminate_revisions_not_present(result)
+
+ def _check_revision_parents(self, revision, inventory):
+ """Private to Repository and Fetch.
+
+ This checks the parentage of revision in an inventory weave for
+ consistency and is only applicable to inventory-weave-for-ancestry
+ using repository formats & fetchers.
+ """
+ weave_parents = inventory.get_parents(revision.revision_id)
+ weave_names = inventory.versions()
+ for parent_id in revision.parent_ids:
+ if parent_id in weave_names:
+ # this parent must not be a ghost.
+ if not parent_id in weave_parents:
+ # but it is a ghost
+ raise errors.CorruptRepository(self)
+
def get_commit_builder(self, branch, parents, config, timestamp=None,
timezone=None, committer=None, revprops=None,
revision_id=None):
@@ -121,6 +254,60 @@
self.start_write_group()
return result
+ @needs_read_lock
+ def get_revision(self, revision_id):
+ """Return the Revision object for a named revision"""
+ # TODO: jam 20070210 get_revision_reconcile should do this for us
+ revision_id = osutils.safe_revision_id(revision_id)
+ r = self.get_revision_reconcile(revision_id)
+ # weave corruption can lead to absent revision markers that should be
+ # present.
+ # the following test is reasonably cheap (it needs a single weave read)
+ # and the weave is cached in read transactions. In write transactions
+ # it is not cached but typically we only read a small number of
+ # revisions. For knits when they are introduced we will probably want
+ # to ensure that caching write transactions are in use.
+ inv = self.get_inventory_weave()
+ self._check_revision_parents(r, inv)
+ return r
+
+ @needs_read_lock
+ def get_revision_graph(self, revision_id=None):
+ """Return a dictionary containing the revision graph.
+
+ :param revision_id: The revision_id to get a graph from. If None, then
+ the entire revision graph is returned. This is a deprecated mode of
+ operation and will be removed in the future.
+ :return: a dictionary of revision_id->revision_parents_list.
+ """
+ if 'evil' in debug.debug_flags:
+ mutter_callsite(3,
+ "get_revision_graph scales with size of history.")
+ # special case NULL_REVISION
+ if revision_id == _mod_revision.NULL_REVISION:
+ return {}
+ revision_id = osutils.safe_revision_id(revision_id)
+ a_weave = self.get_inventory_weave()
+ all_revisions = self._eliminate_revisions_not_present(
+ a_weave.versions())
+ entire_graph = dict([(node, tuple(a_weave.get_parents(node))) for
+ node in all_revisions])
+ if revision_id is None:
+ return entire_graph
+ elif revision_id not in entire_graph:
+ raise errors.NoSuchRevision(self, revision_id)
+ else:
+ # add what can be reached from revision_id
+ result = {}
+ pending = set([revision_id])
+ while len(pending) > 0:
+ node = pending.pop()
+ result[node] = entire_graph[node]
+ for revision_id in result[node]:
+ if revision_id not in result:
+ pending.add(revision_id)
+ return result
+
class PreSplitOutRepositoryFormat(RepositoryFormat):
"""Base class for the pre split out repository formats."""
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2007-09-25 01:47:51 +0000
+++ b/bzrlib/repository.py 2007-09-25 21:42:06 +0000
@@ -525,13 +525,6 @@
self._revision_store._add_revision(revision, StringIO(text),
self.get_transaction())
- @needs_read_lock
- def _all_possible_ids(self):
- """Return all the possible revisions that we could find."""
- if 'evil' in debug.debug_flags:
- mutter_callsite(3, "_all_possible_ids scales with size of history.")
- return self.get_inventory_weave().versions()
-
def all_revision_ids(self):
"""Returns a list of all the revision ids in the repository.
@@ -543,21 +536,13 @@
mutter_callsite(2, "all_revision_ids scales with size of history.")
return self._all_revision_ids()
- @needs_read_lock
def _all_revision_ids(self):
"""Returns a list of all the revision ids in the repository.
These are in as much topological order as the underlying store can
- present: for weaves ghosts may lead to a lack of correctness until
- the reweave updates the parents list.
+ present.
"""
- if self._revision_store.text_store.listable():
- return self._revision_store.all_revision_ids(self.get_transaction())
- result = self._all_possible_ids()
- # TODO: jam 20070210 Ensure that _all_possible_ids returns non-unicode
- # ids. (It should, since _revision_store's API should change to
- # return utf8 revision_ids)
- return self._eliminate_revisions_not_present(result)
+ raise NotImplementedError(self._all_revision_ids)
def break_lock(self):
"""Break a lock if one is present from another instance.
@@ -918,6 +903,11 @@
self.get_transaction())
@needs_read_lock
+ def get_revision(self, revision_id):
+ """Return the Revision object for a named revision."""
+ return self.get_revisions([revision_id])[0]
+
+ @needs_read_lock
def get_revision_reconcile(self, revision_id):
"""'reconcile' helper routine that allows access to a revision always.
@@ -926,14 +916,20 @@
be used by reconcile, or reconcile-alike commands that are correcting
or testing the revision graph.
"""
- if not revision_id or not isinstance(revision_id, basestring):
- raise errors.InvalidRevisionId(revision_id=revision_id,
- branch=self)
- return self.get_revisions([revision_id])[0]
+ return self._get_revisions([revision_id])[0]
@needs_read_lock
def get_revisions(self, revision_ids):
+ """Get many revisions at once."""
+ return self._get_revisions(revision_ids)
+
+ @needs_read_lock
+ def _get_revisions(self, revision_ids):
+ """Core work logic to get many revisions without sanity checks."""
revision_ids = [osutils.safe_revision_id(r) for r in revision_ids]
+ for rev_id in revision_ids:
+ if not rev_id or not isinstance(rev_id, basestring):
+ raise errors.InvalidRevisionId(revision_id=rev_id, branch=self)
revs = self._revision_store.get_revisions(revision_ids,
self.get_transaction())
for rev in revs:
@@ -956,23 +952,6 @@
return rev_tmp.getvalue()
@needs_read_lock
- def get_revision(self, revision_id):
- """Return the Revision object for a named revision"""
- # TODO: jam 20070210 get_revision_reconcile should do this for us
- revision_id = osutils.safe_revision_id(revision_id)
- r = self.get_revision_reconcile(revision_id)
- # weave corruption can lead to absent revision markers that should be
- # present.
- # the following test is reasonably cheap (it needs a single weave read)
- # and the weave is cached in read transactions. In write transactions
- # it is not cached but typically we only read a small number of
- # revisions. For knits when they are introduced we will probably want
- # to ensure that caching write transactions are in use.
- inv = self.get_inventory_weave()
- self._check_revision_parents(r, inv)
- return r
-
- @needs_read_lock
def get_deltas_for_revisions(self, revisions):
"""Produce a generator of revision deltas.
@@ -1003,22 +982,6 @@
r = self.get_revision(revision_id)
return list(self.get_deltas_for_revisions([r]))[0]
- def _check_revision_parents(self, revision, inventory):
- """Private to Repository and Fetch.
-
- This checks the parentage of revision in an inventory weave for
- consistency and is only applicable to inventory-weave-for-ancestry
- using repository formats & fetchers.
- """
- weave_parents = inventory.get_parents(revision.revision_id)
- weave_names = inventory.versions()
- for parent_id in revision.parent_ids:
- if parent_id in weave_names:
- # this parent must not be a ghost.
- if not parent_id in weave_parents:
- # but it is a ghost
- raise errors.CorruptRepository(self)
-
@needs_write_lock
def store_revision_signature(self, gpg_strategy, plaintext, revision_id):
revision_id = osutils.safe_revision_id(revision_id)
@@ -1251,39 +1214,16 @@
@needs_read_lock
def get_revision_graph(self, revision_id=None):
"""Return a dictionary containing the revision graph.
-
+
+ NB: This method should not be used as it accesses the entire graph all
+ at once, which is much more data than most operations should require.
+
:param revision_id: The revision_id to get a graph from. If None, then
the entire revision graph is returned. This is a deprecated mode of
operation and will be removed in the future.
:return: a dictionary of revision_id->revision_parents_list.
"""
- if 'evil' in debug.debug_flags:
- mutter_callsite(3,
- "get_revision_graph scales with size of history.")
- # special case NULL_REVISION
- if revision_id == _mod_revision.NULL_REVISION:
- return {}
- revision_id = osutils.safe_revision_id(revision_id)
- a_weave = self.get_inventory_weave()
- all_revisions = self._eliminate_revisions_not_present(
- a_weave.versions())
- entire_graph = dict([(node, tuple(a_weave.get_parents(node))) for
- node in all_revisions])
- if revision_id is None:
- return entire_graph
- elif revision_id not in entire_graph:
- raise errors.NoSuchRevision(self, revision_id)
- else:
- # add what can be reached from revision_id
- result = {}
- pending = set([revision_id])
- while len(pending) > 0:
- node = pending.pop()
- result[node] = entire_graph[node]
- for revision_id in result[node]:
- if revision_id not in result:
- pending.add(revision_id)
- return result
+ raise NotImplementedError(self.get_revision_graph)
@needs_read_lock
def get_revision_graph_with_ghosts(self, revision_ids=None):
@@ -2120,7 +2060,11 @@
class InterWeaveRepo(InterSameDataRepository):
- """Optimised code paths between Weave based repositories."""
+ """Optimised code paths between Weave based repositories.
+
+ This should be in bzrlib/repofmt/weaverepo.py but we have not yet
+ implemented lazy inter-object optimisation.
+ """
@classmethod
def _get_repo_format_to_test(self):
@@ -2284,13 +2228,13 @@
assert source_ids[0] is None
source_ids.pop(0)
else:
- source_ids = self.source._all_possible_ids()
+ source_ids = self.source.all_revision_ids()
source_ids_set = set(source_ids)
# source_ids is the worst possible case we may need to pull.
# now we want to filter source_ids against what we actually
# have in target, but don't try to check for existence where we know
# we do not have a revision as that would be pointless.
- target_ids = set(self.target._all_possible_ids())
+ target_ids = set(self.target.all_revision_ids())
possibly_present_revisions = target_ids.intersection(source_ids_set)
actually_present_revisions = set(self.target._eliminate_revisions_not_present(possibly_present_revisions))
required_revisions = source_ids_set.difference(actually_present_revisions)
=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- a/bzrlib/tests/blackbox/test_commit.py 2007-09-22 16:20:37 +0000
+++ b/bzrlib/tests/blackbox/test_commit.py 2007-09-25 19:23:14 +0000
@@ -521,3 +521,20 @@
last_rev = tree.branch.repository.get_revision(tree.last_revision())
properties = last_rev.properties
self.assertEqual('John Doe', properties['author'])
+
+ def test_partial_commit_with_renames_in_tree(self):
+ # this test illustrates bug #140419
+ t = self.make_branch_and_tree('.')
+ self.build_tree(['dir/', 'dir/a', 'test'])
+ t.add(['dir/', 'dir/a', 'test'])
+ t.commit('initial commit')
+ # important part: file dir/a should change parent
+ # and should appear before old parent
+ # then during partial commit we have error
+ # parent_id {dir-XXX} not in inventory
+ t.rename_one('dir/a', 'a')
+ self.build_tree_contents([('test', 'changes in test')])
+ # partial commit
+ out, err = self.run_bzr('commit test -m "partial commit"')
+ self.assertEquals('', out)
+ self.assertContainsRe(err, r'modified test\nCommitted revision 2.')
=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py 2007-09-14 13:58:32 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py 2007-09-25 19:01:48 +0000
@@ -344,3 +344,39 @@
self.run_bzr('merge -d target -r revid:rev2a branch_b')
self.failUnlessExists('target/file1')
self.failIfExists('target/file2')
+
+ def assertDirectoryContent(self, directory, entries, message=''):
+ """Assert whether entries (file or directories) exist in a directory.
+
+ It also checks that there are no extra entries.
+ """
+ ondisk = os.listdir(directory)
+ if set(ondisk) == set(entries):
+ return
+ if message:
+ message += '\n'
+ raise AssertionError(
+ '%s"%s" directory content is different:\na = %s\nb = %s\n'
+ % (message, directory, sorted(entries), sorted(ondisk)))
+
+ def test_cherrypicking_merge(self):
+ # make source branch
+ source = self.make_branch_and_tree('source')
+ for f in ('a', 'b', 'c', 'd'):
+ self.build_tree(['source/'+f])
+ source.add(f)
+ source.commit('added '+f, rev_id='rev_'+f)
+ # target branch
+ target = source.bzrdir.sprout('target', 'rev_a').open_workingtree()
+ self.assertDirectoryContent('target', ['.bzr', 'a'])
+ # pick 1 revision
+ self.run_bzr('merge -d target -r revid:rev_b..revid:rev_c source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'c'])
+ target.revert()
+ # pick 2 revisions
+ self.run_bzr('merge -d target -r revid:rev_b..revid:rev_d source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'c', 'd'])
+ target.revert()
+ # pick 1 revision with option --changes
+ self.run_bzr('merge -d target -c revid:rev_d source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'd'])
=== modified file 'bzrlib/tests/blackbox/test_revert.py'
--- a/bzrlib/tests/blackbox/test_revert.py 2007-06-27 19:13:50 +0000
+++ b/bzrlib/tests/blackbox/test_revert.py 2007-09-24 05:18:37 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005 Canonical Ltd
+# Copyright (C) 2005, 2007 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -186,3 +186,24 @@
out, err = self.run_bzr('revert -r -2')
self.assertEqual('', out)
self.assertEqual('-D file\n', err)
+
+ def test_revert_forget_merges(self):
+ # revert --forget-merges removes any pending merges into the tree, but
+ # leaves the files unchanged
+ tree = self.make_branch_and_tree('.')
+ # forget-merges before first commit, though pointless, does not fail
+ self.run_bzr(['revert', '--forget-merges'])
+ self.build_tree(['file'])
+ first_rev_id = tree.commit('initial commit')
+ self.build_tree_contents([('file', 'new content')])
+ existing_parents = tree.get_parent_ids()
+ self.assertEquals([first_rev_id], existing_parents)
+ merged_parents = existing_parents + ['merged-in-rev']
+ tree.set_parent_ids(merged_parents)
+ self.assertEquals(merged_parents, tree.get_parent_ids())
+ self.run_bzr(['revert', '--forget-merges'])
+ self.assertEquals([first_rev_id], tree.get_parent_ids())
+ # changed files are not reverted
+ self.assertFileEqual('new content', 'file')
+ # you can give it the path of a tree
+ self.run_bzr(['revert', '--forget-merges', tree.abspath('.')])
=== modified file 'bzrlib/tests/test_knit.py'
--- a/bzrlib/tests/test_knit.py 2007-09-24 05:54:25 +0000
+++ b/bzrlib/tests/test_knit.py 2007-09-25 21:42:06 +0000
@@ -1315,22 +1315,38 @@
self.assertEquals(origins[1], ('text-1', 'b\n'))
self.assertEquals(origins[2], ('text-1', 'c\n'))
- def test_knit_join(self):
- """Store in knit with parents"""
- k1 = KnitVersionedFile('test1', get_transport('.'), factory=KnitPlainFactory(), create=True)
- k1.add_lines('text-a', [], split_lines(TEXT_1))
- k1.add_lines('text-b', ['text-a'], split_lines(TEXT_1))
-
- k1.add_lines('text-c', [], split_lines(TEXT_1))
- k1.add_lines('text-d', ['text-c'], split_lines(TEXT_1))
-
- k1.add_lines('text-m', ['text-b', 'text-d'], split_lines(TEXT_1))
-
- k2 = KnitVersionedFile('test2', get_transport('.'), factory=KnitPlainFactory(), create=True)
+ def _test_join_with_factories(self, k1_factory, k2_factory):
+ k1 = KnitVersionedFile('test1', get_transport('.'), factory=k1_factory, create=True)
+ k1.add_lines('text-a', [], ['a1\n', 'a2\n', 'a3\n'])
+ k1.add_lines('text-b', ['text-a'], ['a1\n', 'b2\n', 'a3\n'])
+ k1.add_lines('text-c', [], ['c1\n', 'c2\n', 'c3\n'])
+ k1.add_lines('text-d', ['text-c'], ['c1\n', 'd2\n', 'd3\n'])
+ k1.add_lines('text-m', ['text-b', 'text-d'], ['a1\n', 'b2\n', 'd3\n'])
+ k2 = KnitVersionedFile('test2', get_transport('.'), factory=k2_factory, create=True)
count = k2.join(k1, version_ids=['text-m'])
self.assertEquals(count, 5)
self.assertTrue(k2.has_version('text-a'))
self.assertTrue(k2.has_version('text-c'))
+ origins = k2.annotate('text-m')
+ self.assertEquals(origins[0], ('text-a', 'a1\n'))
+ self.assertEquals(origins[1], ('text-b', 'b2\n'))
+ self.assertEquals(origins[2], ('text-d', 'd3\n'))
+
+ def test_knit_join_plain_to_plain(self):
+ """Test joining a plain knit with a plain knit."""
+ self._test_join_with_factories(KnitPlainFactory(), KnitPlainFactory())
+
+ def test_knit_join_anno_to_anno(self):
+ """Test joining an annotated knit with an annotated knit."""
+ self._test_join_with_factories(None, None)
+
+ def test_knit_join_anno_to_plain(self):
+ """Test joining an annotated knit with a plain knit."""
+ self._test_join_with_factories(None, KnitPlainFactory())
+
+ def test_knit_join_plain_to_anno(self):
+ """Test joining a plain knit with an annotated knit."""
+ self._test_join_with_factories(KnitPlainFactory(), None)
def test_reannotate(self):
k1 = KnitVersionedFile('knit1', get_transport('.'),
=== modified file 'bzrlib/tests/test_trace.py'
--- a/bzrlib/tests/test_trace.py 2007-09-21 03:07:10 +0000
+++ b/bzrlib/tests/test_trace.py 2007-09-24 06:00:49 +0000
@@ -30,6 +30,7 @@
from bzrlib.trace import (
mutter, mutter_callsite, report_exception,
set_verbosity_level, get_verbosity_level, is_quiet, is_verbose, be_quiet,
+ _rollover_trace_maybe,
)
@@ -174,3 +175,15 @@
self.assertEqual(-1, get_verbosity_level())
be_quiet(False)
self.assertEqual(0, get_verbosity_level())
+
+
+class TestBzrLog(TestCaseInTempDir):
+
+ def test_log_rollover(self):
+ temp_log_name = 'test-log'
+ trace_file = open(temp_log_name, 'at')
+ trace_file.write('test_log_rollover padding\n' * 1000000)
+ trace_file.close()
+ _rollover_trace_maybe(temp_log_name)
+ # should have been rolled over
+ self.assertFalse(os.access(temp_log_name, os.R_OK))
=== modified file 'bzrlib/trace.py'
--- a/bzrlib/trace.py 2007-09-21 06:13:09 +0000
+++ b/bzrlib/trace.py 2007-09-24 06:00:49 +0000
@@ -151,7 +151,7 @@
if size <= 4 << 20:
return
old_fname = trace_fname + '.old'
- rename(trace_fname, old_fname)
+ osutils.rename(trace_fname, old_fname)
except OSError:
return
=== modified file 'bzrlib/versionedfile.py'
--- a/bzrlib/versionedfile.py 2007-09-21 01:36:48 +0000
+++ b/bzrlib/versionedfile.py 2007-09-25 21:42:06 +0000
@@ -625,8 +625,9 @@
# TODO: remove parent texts when they are not relevant any more for
# memory pressure reduction. RBC 20060313
# pb.update('Converting versioned data', 0, len(order))
+ total = len(order)
for index, version in enumerate(order):
- pb.update('Converting versioned data', index, len(order))
+ pb.update('Converting versioned data', index, total)
_, _, parent_text = target.add_lines(version,
self.source.get_parents(version),
self.source.get_lines(version),
@@ -640,6 +641,8 @@
msg,
version_ids,
ignore_missing)
+ else:
+ return total
finally:
pb.finished()
=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py 2007-09-25 05:53:46 +0000
+++ b/bzrlib/workingtree.py 2007-09-25 21:42:06 +0000
@@ -702,7 +702,7 @@
if updated:
self.set_parent_ids(parents, allow_leftmost_as_ghost=True)
- def path_content_summary(self, path, _lstat=os.lstat,
+ def path_content_summary(self, path, _lstat=osutils.lstat,
_mapper=osutils.file_kind_from_stat_mode):
"""See Tree.path_content_summary."""
abspath = self.abspath(path)
@@ -712,7 +712,7 @@
if getattr(e, 'errno', None) == errno.ENOENT:
# no file.
return ('missing', None, None, None)
- # propogate other errors
+ # propagate other errors
raise
kind = _mapper(stat_result.st_mode)
if kind == 'file':
More information about the bazaar-commits
mailing list