Rev 2723: Merge more bzr.dev, addressing some bugs. [still broken] in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Wed Aug 22 07:23:57 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2723
revision-id: robertc at robertcollins.net-20070822062352-0h4g14qd15odqfn0
parent: robertc at robertcollins.net-20070822010235-ox03mt2fthchnlor
parent: pqm at pqm.ubuntu.com-20070822044432-tfi063jpsr3vgnao
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Wed 2007-08-22 16:23:52 +1000
message:
Merge more bzr.dev, addressing some bugs. [still broken]
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/tests/revisionstore_implementations/test_all.py test_all.py-20060303020702-9b2d4c1d75407f31
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/fakevfat.py fakevfat.py-20060407072414-d59939fa1d6c79d9
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
doc/developers/repository.txt repository.txt-20070709152006-xkhlek456eclha4u-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.71
revision-id: pqm at pqm.ubuntu.com-20070822044432-tfi063jpsr3vgnao
parent: pqm at pqm.ubuntu.com-20070822024917-nw7dh478y4d8cjeg
parent: robertc at robertcollins.net-20070822041335-kdxlx0fuj6qes2cy
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2007-08-22 05:44:32 +0100
message:
(robertc) Index layer tweaks - -Dindex and a key_count method (only accurate on low level indices). (Robert Collins).
modified:
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_index.py test_index.py-20070712131115-lolkarso50vjr64s-2
------------------------------------------------------------
revno: 2592.1.25.2.26
revision-id: robertc at robertcollins.net-20070822041335-kdxlx0fuj6qes2cy
parent: robertc at robertcollins.net-20070822000026-kvufiqhlreokb1en
committer: Robert Collins <robertc at robertcollins.net>
branch nick: index
timestamp: Wed 2007-08-22 14:13:35 +1000
message:
Why we should always test before committing.
modified:
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.70
revision-id: pqm at pqm.ubuntu.com-20070822024917-nw7dh478y4d8cjeg
parent: pqm at pqm.ubuntu.com-20070822013256-6w9yisc450hwqf2b
parent: robertc at robertcollins.net-20070822014124-wiinlne4nin2f2tm
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2007-08-22 03:49:17 +0100
message:
(robertc) Add two new transport methods to help pack repositories, get_recommended_page_size and open_write_stream. (Robert Collins).
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/fakevfat.py fakevfat.py-20060407072414-d59939fa1d6c79d9
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
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.11
revision-id: robertc at robertcollins.net-20070822014124-wiinlne4nin2f2tm
parent: robertc at robertcollins.net-20070815065307-8xwdhnm2qmpi5nk2
parent: pqm at pqm.ubuntu.com-20070822013256-6w9yisc450hwqf2b
committer: Robert Collins <robertc at robertcollins.net>
branch nick: integration
timestamp: Wed 2007-08-22 11:41:24 +1000
message:
Merge bzr.dev to resolve conflicts.
removed:
doc/README.1st README.1st-20060314161707-b943d5d4cce669b6
doc/developers/scratch.txt scratch.txt-20070618020404-cdhv0ecgrukomemg-3
added:
bzrlib/mail_client.py mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
bzrlib/tests/blackbox/test_bundle_info.py test_bundle_info.py-20070816181255-eiuodwxuqu7w7gxf-1
bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
bzrlib/util/simplemapi.py simplemapi.py-20070810174811-ievl23nziuiq2k3m-1
doc/developers/directory-fingerprints.txt directoryfingerprint-20070731033348-okmllh4b5srdtlk2-1
doc/developers/last-modified.txt lastmodified.txt-20070806222243-df50y5fi7n85vnob-1
doc/developers/revision-properties.txt revisionproperties.t-20070807133526-w57m8zv5o7t5kugm-1
doc/en/ en-20070810050627-g7r46azs5mlwj61j-1
doc/en/developer-guide/ developerguide-20070810050627-g7r46azs5mlwj61j-2
doc/en/mini-tutorial/ minitutorial-20070813141352-2u64ooqzo0or4hss-1
doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
doc/en/quick-reference/ quickreference-20070813143223-5i7bgw7w8s7l3ae2-1
doc/en/quick-reference/Makefile makefile-20070813143223-5i7bgw7w8s7l3ae2-2
doc/en/quick-reference/quick-start-summary.svg quickstartsummary.sv-20070813143223-5i7bgw7w8s7l3ae2-3
doc/en/release-notes/ releasenotes-20070810050627-g7r46azs5mlwj61j-3
doc/en/user-guide/ userguide-20070810050627-g7r46azs5mlwj61j-4
doc/en/user-reference/ userreference-20070810050627-g7r46azs5mlwj61j-5
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
renamed:
doc/bug_trackers.txt => doc/en/user-guide/bug_trackers.txt bug_trackers.txt-20070713223459-khxdlcudraii95uv-1
doc/centralized_workflow.txt => doc/en/user-guide/centralized_workflow.txt centralized_workflow-20060830194948-kspf52565xvgrlil-1
doc/configuration.txt => doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/conflicts.txt => doc/en/user-guide/conflicts.txt conflicts.txt-20070723221841-ns3jvwxdb4okn6fk-1
doc/http_smart_server.txt => doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
doc/index.txt => doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/plugins.txt => doc/en/user-guide/plugins.txt plugins.txt-20060314145616-525099a747f3ffdd
doc/server.txt => doc/en/user-guide/server.txt server.txt-20060913044801-h939fvbwzz39gf7g-1
doc/setting_up_email.txt => doc/en/user-guide/setting_up_email.txt setting_up_email.txt-20060314161707-fd242c8944346173
doc/shared_repository_layouts.txt => doc/en/user-guide/shared_repository_layouts.txt shared_repository_la-20070502152030-bagewuqs18ns24o7-1
doc/specifying_revisions.txt => doc/en/user-guide/specifying_revisions.txt specifying_revisions.txt-20060314161707-19deb139101bea33
doc/tutorial.txt => doc/en/user-guide/tutorial.txt tutorial.txt-20050804190939-9dcbba2ef053bc84
doc/using_aliases.txt => doc/en/user-guide/using_aliases.txt using_aliases.txt-20060314161707-c21d27fa2939e039
doc/version_info.txt => doc/en/user-guide/version_info.txt version_info.txt-20060921215543-gju6o5xdic8w25np-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
INSTALL INSTALL-20051019070340-4b27f2fb240c7943
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/bundle_data.py read_changeset.py-20050619171944-c0d95aa685537640
bzrlib/bundle/commands.py __init__.py-20050617152058-1b6530d9ab85c11c
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/delta.py delta.py-20050729221636-54cf14ef94783d0a
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lockable_files.py control_files.py-20051111201905-bb88546e799d669f
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/multiparent.py __init__.py-20070410133617-n1jdhcc1n1mibarp-1
bzrlib/mutabletree.py mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/patches.py patches.py-20050727183609-378c1cc5972ce908
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revision.py revision.py-20050309040759-e77802c08f3999d5
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/status.py status.py-20050505062338-431bfa63ec9b19e6
bzrlib/store/__init__.py store.py-20050309040759-164dc5173d6406c2
bzrlib/store/revision/knit.py knit.py-20060303020652-de5fa299e941a3c7
bzrlib/store/versioned/__init__.py weavestore.py-20050907094258-88262e0434babab9
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
bzrlib/tests/blackbox/test_added.py test_added.py-20060119085008-6b8b90369d42a26c
bzrlib/tests/blackbox/test_aliases.py test_aliases.py-20060210230318-f0c08c9294dbfae1
bzrlib/tests/blackbox/test_ancestry.py test_ancestry.py-20060131142602-6d9524c490537e90
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_cat.py test_cat.py-20051201162916-f0937e4e19ea24b3
bzrlib/tests/blackbox/test_checkout.py test_checkout.py-20060211231752-a5cde67cf70af854
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_debug.py test_debug.py-20061026142942-q76cgg41785b3mdk-1
bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
bzrlib/tests/blackbox/test_find_merge_base.py test_find_merge_base.py-20060131142124-f9d5c94df4505b70
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_locale.py test_lang.py-20060824204205-80v50j25qkuop7yn-1
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
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_status.py teststatus.py-20050712014354-508855eb9f29f7dc
bzrlib/tests/blackbox/test_update.py test_update.py-20060212125639-c4dad1a5c56d5919
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
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_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_commit.py test_commit.py-20050914060732-279f057f8c295434
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_escaped_store.py test_escaped_store.py-20060216023929-6bcb9a067344959f
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_lockdir.py test_lockdir.py-20060220222025-33d4221569a3d600
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_multiparent.py test_multiparent.py-20070410133617-n1jdhcc1n1mibarp-4
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
bzrlib/tests/test_patches.py test_patches.py-20051231203844-f4974d20f6aea09c
bzrlib/tests/test_revision.py testrevision.py-20050804210559-46f5e1eb67b01289
bzrlib/tests/test_revisionnamespaces.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_source.py test_source.py-20051207061333-a58dea6abecc030d
bzrlib/tests/test_store.py teststore.py-20050826022702-f6caadb647395769
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_upgrade.py test_upgrade.py-20051004040251-555fe1d2bae1bc71
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_weave.py testknit.py-20050627023648-9833cc5562ffb785
bzrlib/tests/test_win32utils.py test_win32utils.py-20070713181630-8xsrjymd3e8mgw23-108
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_is_ignored.py test_is_ignored.py-20060518083307-a5b383dd4d070083
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/http/_pycurl.py pycurlhttp.py-20060110060940-4e2a705911af77a6
bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
bzrlib/transport/http/wsgi.py wsgi.py-20061005091552-rz8pva0olkxv0sd8-2
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
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/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/weave.py knit.py-20050627021749-759c29984154256b
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/bazaar-vcs.org.kid bazaarvcs.org.kid-20060929181918-huv7bgmdey0ktqci-1
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/performance-contributing.txt performancecontribut-20070621063612-ac4zhhagjzkr21qp-1
doc/developers/performance-roadmap.txt performanceroadmap.t-20070507174912-mwv3xv517cs4sisd-2
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
tools/rst2prettyhtml.py rst2prettyhtml.py-20060929181914-t7dh62f2wxi0i5aj-1
tools/win32/ostools.py ostools.py-20060731163025-npjffm46rgnkl50d-1
doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.10
revision-id: robertc at robertcollins.net-20070815065307-8xwdhnm2qmpi5nk2
parent: robertc at robertcollins.net-20070815012630-xqjtm5z2c4718n8s
committer: Robert Collins <robertc at robertcollins.net>
branch nick: transport-get-file
timestamp: Wed 2007-08-15 16:53:07 +1000
message:
Review feedback and fix VFat emulated transports to not claim to have unix permissions.
modified:
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/fakevfat.py fakevfat.py-20060407072414-d59939fa1d6c79d9
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.9
revision-id: robertc at robertcollins.net-20070815012630-xqjtm5z2c4718n8s
parent: robertc at robertcollins.net-20070808071757-qfrx4dwms024ccy5
parent: pqm at pqm.ubuntu.com-20070814221506-6rw0b0oolfdeqrdw
committer: Robert Collins <robertc at robertcollins.net>
branch nick: transport-get-file
timestamp: Wed 2007-08-15 11:26:30 +1000
message:
Merge bzr.dev.
removed:
bzrlib/file_names.py file_collection.py-20070714100753-j2zz4ahtk331k5zm-1
bzrlib/tests/test_file_names.py test_file_collection-20070714093417-5gc9d821to85zo4t-1
added:
bzrlib/tests/repository_implementations/test_has_same_location.py test_has_same_locati-20070807074648-2i2ah82fbe83iys7-1
bzrlib/tests/repository_implementations/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
tools/win32/survey.txt survey.txt-20070809075950-sf265mgu9oog8jjb-1
renamed:
doc/developers/HACKING => doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
README README-20050309040720-8f368abf9f346b9d
bzr bzr.py-20050313053754-5485f144c7006fa6
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/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/delta.py delta.py-20050729221636-54cf14ef94783d0a
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/help.py help.py-20050505025907-4dd7a6d63912f894
bzrlib/help_topics.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/option.py option.py-20051014052914-661fb36e76e7362f
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revision.py revision.py-20050309040759-e77802c08f3999d5
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
bzrlib/smtp_connection.py smtp_connection.py-20070618204456-nu6wag1ste4biuk2-1
bzrlib/symbol_versioning.py symbol_versioning.py-20060105104851-9ecf8af605d15a80
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_help.py test_help.py-20060216004358-4ee8a2a338f75a62
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/blackbox/test_merge_directive.py test_merge_directive-20070302012039-zh7uhy39biairtn0-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_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/__init__.py __init__.py-20060131092037-9564957a7d4a841b
bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
bzrlib/tests/repository_implementations/test_reconcile.py test_reconcile.py-20060223022332-572ef70a3288e369
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_graph.py test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
bzrlib/tests/test_help.py test_help.py-20070419045354-6q6rq15j9e2n5fna-1
bzrlib/tests/test_index.py test_index.py-20070712131115-lolkarso50vjr64s-2
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
bzrlib/tests/test_options.py testoptions.py-20051014093702-96457cfc86319a8f
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_smtp_connection.py test_smtp_connection-20070618204509-wuyxc0r0ztrecv7e-1
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_tree.py test_tree.py-20060724065232-khgrr0vvmt6ih0mi-1
bzrlib/tests/workingtree_implementations/test_inv.py test_inv.py-20070311221604-ighlq8tbn5xq0kuo-1
bzrlib/tests/workingtree_implementations/test_is_ignored.py test_is_ignored.py-20060518083307-a5b383dd4d070083
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/default.css default.css-20060622101119-tgwtdci8z769bjb9-1
doc/developers/bundles.txt bundles.txt-20070621030528-qkjnugd7iyud6ow3-1
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/profiling.txt profiling.txt-20070531045713-j15mxufywgzwdeu8-1
doc/developers/repository.txt repository.txt-20070709152006-xkhlek456eclha4u-1
doc/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
doc/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/tutorial.txt tutorial.txt-20050804190939-9dcbba2ef053bc84
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
tools/doc_generate/autodoc_man.py bzrman.py-20050601153041-0ff7f74de456d15e
tools/doc_generate/autodoc_rstx.py autodoc_rstx.py-20060420024836-3e0d4a526452193c
tools/rst2html.py rst2html.py-20060817120932-gn177u8v0008txhu-1
tools/win32/bzr-win32-bdist-postinstall.py bzrwin32bdistpostinstall.py-20060629085133-098bsfj3va8jc0ql-1
tools/win32/bzr.iss.cog bzr.iss.cog-20060622100836-b3yup582rt3y0nvm-5
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.8
revision-id: robertc at robertcollins.net-20070808071757-qfrx4dwms024ccy5
parent: robertc at robertcollins.net-20070808071618-4e1jopgxjj6g16ug
committer: Robert Collins <robertc at robertcollins.net>
branch nick: transport-get-file
timestamp: Wed 2007-08-08 17:17:57 +1000
message:
Remove references to close_file_stream.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.7
revision-id: robertc at robertcollins.net-20070808071618-4e1jopgxjj6g16ug
parent: robertc at robertcollins.net-20070805081501-ipg5fapwuigozr50
committer: Robert Collins <robertc at robertcollins.net>
branch nick: transport-get-file
timestamp: Wed 2007-08-08 17:16:18 +1000
message:
Review feedback.
modified:
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
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.69
revision-id: pqm at pqm.ubuntu.com-20070822013256-6w9yisc450hwqf2b
parent: pqm at pqm.ubuntu.com-20070821175054-6pcl32ipl9eopnqw
parent: robertc at robertcollins.net-20070821231835-usf67px0chh80iag
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2007-08-22 02:32:56 +0100
message:
(robertc) Add records_written attribute to ContainerWriter's. (Robert Collins).
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.27.1.2
revision-id: robertc at robertcollins.net-20070821231835-usf67px0chh80iag
parent: robertc at robertcollins.net-20070815011257-kxmspgdwk2l36h0x
parent: pqm at pqm.ubuntu.com-20070821175054-6pcl32ipl9eopnqw
committer: Robert Collins <robertc at robertcollins.net>
branch nick: integration
timestamp: Wed 2007-08-22 09:18:35 +1000
message:
Merge bzr.dev to resolve conflicts.
removed:
doc/README.1st README.1st-20060314161707-b943d5d4cce669b6
doc/developers/scratch.txt scratch.txt-20070618020404-cdhv0ecgrukomemg-3
added:
bzrlib/mail_client.py mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
bzrlib/tests/blackbox/test_bundle_info.py test_bundle_info.py-20070816181255-eiuodwxuqu7w7gxf-1
bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
bzrlib/util/simplemapi.py simplemapi.py-20070810174811-ievl23nziuiq2k3m-1
doc/developers/directory-fingerprints.txt directoryfingerprint-20070731033348-okmllh4b5srdtlk2-1
doc/developers/last-modified.txt lastmodified.txt-20070806222243-df50y5fi7n85vnob-1
doc/developers/revision-properties.txt revisionproperties.t-20070807133526-w57m8zv5o7t5kugm-1
doc/en/ en-20070810050627-g7r46azs5mlwj61j-1
doc/en/developer-guide/ developerguide-20070810050627-g7r46azs5mlwj61j-2
doc/en/mini-tutorial/ minitutorial-20070813141352-2u64ooqzo0or4hss-1
doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
doc/en/quick-reference/ quickreference-20070813143223-5i7bgw7w8s7l3ae2-1
doc/en/quick-reference/Makefile makefile-20070813143223-5i7bgw7w8s7l3ae2-2
doc/en/quick-reference/quick-start-summary.svg quickstartsummary.sv-20070813143223-5i7bgw7w8s7l3ae2-3
doc/en/release-notes/ releasenotes-20070810050627-g7r46azs5mlwj61j-3
doc/en/user-guide/ userguide-20070810050627-g7r46azs5mlwj61j-4
doc/en/user-reference/ userreference-20070810050627-g7r46azs5mlwj61j-5
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
renamed:
doc/bug_trackers.txt => doc/en/user-guide/bug_trackers.txt bug_trackers.txt-20070713223459-khxdlcudraii95uv-1
doc/centralized_workflow.txt => doc/en/user-guide/centralized_workflow.txt centralized_workflow-20060830194948-kspf52565xvgrlil-1
doc/configuration.txt => doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/conflicts.txt => doc/en/user-guide/conflicts.txt conflicts.txt-20070723221841-ns3jvwxdb4okn6fk-1
doc/http_smart_server.txt => doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
doc/index.txt => doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/plugins.txt => doc/en/user-guide/plugins.txt plugins.txt-20060314145616-525099a747f3ffdd
doc/server.txt => doc/en/user-guide/server.txt server.txt-20060913044801-h939fvbwzz39gf7g-1
doc/setting_up_email.txt => doc/en/user-guide/setting_up_email.txt setting_up_email.txt-20060314161707-fd242c8944346173
doc/shared_repository_layouts.txt => doc/en/user-guide/shared_repository_layouts.txt shared_repository_la-20070502152030-bagewuqs18ns24o7-1
doc/specifying_revisions.txt => doc/en/user-guide/specifying_revisions.txt specifying_revisions.txt-20060314161707-19deb139101bea33
doc/tutorial.txt => doc/en/user-guide/tutorial.txt tutorial.txt-20050804190939-9dcbba2ef053bc84
doc/using_aliases.txt => doc/en/user-guide/using_aliases.txt using_aliases.txt-20060314161707-c21d27fa2939e039
doc/version_info.txt => doc/en/user-guide/version_info.txt version_info.txt-20060921215543-gju6o5xdic8w25np-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
INSTALL INSTALL-20051019070340-4b27f2fb240c7943
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/bundle_data.py read_changeset.py-20050619171944-c0d95aa685537640
bzrlib/bundle/commands.py __init__.py-20050617152058-1b6530d9ab85c11c
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/delta.py delta.py-20050729221636-54cf14ef94783d0a
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lockable_files.py control_files.py-20051111201905-bb88546e799d669f
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/multiparent.py __init__.py-20070410133617-n1jdhcc1n1mibarp-1
bzrlib/mutabletree.py mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/patches.py patches.py-20050727183609-378c1cc5972ce908
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revision.py revision.py-20050309040759-e77802c08f3999d5
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/status.py status.py-20050505062338-431bfa63ec9b19e6
bzrlib/store/__init__.py store.py-20050309040759-164dc5173d6406c2
bzrlib/store/revision/knit.py knit.py-20060303020652-de5fa299e941a3c7
bzrlib/store/versioned/__init__.py weavestore.py-20050907094258-88262e0434babab9
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
bzrlib/tests/blackbox/test_added.py test_added.py-20060119085008-6b8b90369d42a26c
bzrlib/tests/blackbox/test_aliases.py test_aliases.py-20060210230318-f0c08c9294dbfae1
bzrlib/tests/blackbox/test_ancestry.py test_ancestry.py-20060131142602-6d9524c490537e90
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_cat.py test_cat.py-20051201162916-f0937e4e19ea24b3
bzrlib/tests/blackbox/test_checkout.py test_checkout.py-20060211231752-a5cde67cf70af854
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_debug.py test_debug.py-20061026142942-q76cgg41785b3mdk-1
bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
bzrlib/tests/blackbox/test_find_merge_base.py test_find_merge_base.py-20060131142124-f9d5c94df4505b70
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_locale.py test_lang.py-20060824204205-80v50j25qkuop7yn-1
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
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_status.py teststatus.py-20050712014354-508855eb9f29f7dc
bzrlib/tests/blackbox/test_update.py test_update.py-20060212125639-c4dad1a5c56d5919
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
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_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_commit.py test_commit.py-20050914060732-279f057f8c295434
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_escaped_store.py test_escaped_store.py-20060216023929-6bcb9a067344959f
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_lockdir.py test_lockdir.py-20060220222025-33d4221569a3d600
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_multiparent.py test_multiparent.py-20070410133617-n1jdhcc1n1mibarp-4
bzrlib/tests/test_patches.py test_patches.py-20051231203844-f4974d20f6aea09c
bzrlib/tests/test_revision.py testrevision.py-20050804210559-46f5e1eb67b01289
bzrlib/tests/test_revisionnamespaces.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_source.py test_source.py-20051207061333-a58dea6abecc030d
bzrlib/tests/test_store.py teststore.py-20050826022702-f6caadb647395769
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_upgrade.py test_upgrade.py-20051004040251-555fe1d2bae1bc71
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_weave.py testknit.py-20050627023648-9833cc5562ffb785
bzrlib/tests/test_win32utils.py test_win32utils.py-20070713181630-8xsrjymd3e8mgw23-108
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_is_ignored.py test_is_ignored.py-20060518083307-a5b383dd4d070083
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/http/_pycurl.py pycurlhttp.py-20060110060940-4e2a705911af77a6
bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
bzrlib/transport/http/wsgi.py wsgi.py-20061005091552-rz8pva0olkxv0sd8-2
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
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/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/weave.py knit.py-20050627021749-759c29984154256b
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/bazaar-vcs.org.kid bazaarvcs.org.kid-20060929181918-huv7bgmdey0ktqci-1
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/performance-contributing.txt performancecontribut-20070621063612-ac4zhhagjzkr21qp-1
doc/developers/performance-roadmap.txt performanceroadmap.t-20070507174912-mwv3xv517cs4sisd-2
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
tools/rst2prettyhtml.py rst2prettyhtml.py-20060929181914-t7dh62f2wxi0i5aj-1
tools/win32/ostools.py ostools.py-20060731163025-npjffm46rgnkl50d-1
doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.27.1.1
revision-id: robertc at robertcollins.net-20070815011257-kxmspgdwk2l36h0x
parent: pqm at pqm.ubuntu.com-20070814221506-6rw0b0oolfdeqrdw
committer: Robert Collins <robertc at robertcollins.net>
branch nick: pack
timestamp: Wed 2007-08-15 11:12:57 +1000
message:
Add records_written attribute to ContainerWriter's. (Robert Collins).
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
=== modified file 'NEWS'
--- a/NEWS 2007-08-22 01:02:35 +0000
+++ b/NEWS 2007-08-22 06:23:52 +0000
@@ -61,6 +61,9 @@
stack to the log, which can be useful for gathering debug details.
(Robert Collins)
+ * ``bzrlib.pack.ContainerWriter`` now tracks how many records have been
+ added via a public attribute records_written. (Robert Collins)
+
* New method ``bzrlib.transport.Transport.get_recommended_page_size``.
This provides a hint to users of transports as to the reasonable
minimum data to read. In principle this can take latency and
@@ -68,14 +71,9 @@
just has hard coded values based on the url. (e.g. http:// has a large
page size, file:// has a small one.) (Robert Collins)
- * New methods on ``bzrlib.transport.Transport`` ``open_file_stream`` and
- ``close_file_stream`` allow incremental addition of data to a file
- without requiring that all the data be buffered in memory.
- (Robert Collins)
-
- * Add a new method ``bzrlib.repository.Repository.reconcile_actions``
- allowing conditional test cases on the sorts of things reconcile
- will actually perform. (Robert Collins)
+ * New method on ``bzrlib.transport.Transport`` ``open_write_stream`` allows
+ incremental addition of data to a file without requiring that all the
+ data be buffered in memory. (Robert Collins)
bzr 0.90 2007-08-??
=== modified file 'bzrlib/index.py'
--- a/bzrlib/index.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/index.py 2007-08-22 06:23:52 +0000
@@ -734,7 +734,7 @@
add_nodes_callback=None):
"""Construct an adapter against adapted with prefix."""
self.adapted = adapted
- self.prefix = prefix + (None,)*missing_key_length
+ self.prefix_key = prefix + (None,)*missing_key_length
self.prefix = prefix
self.prefix_len = len(prefix)
self.add_nodes_callback = add_nodes_callback
@@ -801,7 +801,7 @@
defined order for the result iteration - it will be in the most
efficient order for the index (in this case dictionary hash order).
"""
- return self._strip_prefix(self.adapted.iter_entries_prefix([self.prefix]))
+ return self._strip_prefix(self.adapted.iter_entries_prefix([self.prefix_key]))
def iter_entries(self, keys):
"""Iterate over keys within the index.
=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/knit.py 2007-08-22 06:23:52 +0000
@@ -1318,7 +1318,10 @@
def get_method(self, version_id):
"""Return compression method of specified version."""
- options = self._cache[version_id][1]
+ try:
+ options = self._cache[version_id][1]
+ except KeyError:
+ raise RevisionNotPresent(version_id, self._filename)
if 'fulltext' in options:
return 'fulltext'
else:
@@ -1557,7 +1560,10 @@
return 'fulltext'
def _get_node(self, version_id):
- return list(self._get_entries(self._version_ids_to_keys([version_id])))[0]
+ try:
+ return list(self._get_entries(self._version_ids_to_keys([version_id])))[0]
+ except IndexError:
+ raise RevisionNotPresent(version_id, self)
def get_options(self, version_id):
"""Return a string represention options.
=== modified file 'bzrlib/pack.py'
--- a/bzrlib/pack.py 2007-08-08 02:57:22 +0000
+++ b/bzrlib/pack.py 2007-08-15 01:12:57 +0000
@@ -59,7 +59,12 @@
class ContainerWriter(object):
- """A class for writing containers."""
+ """A class for writing containers.
+
+ :attribute records_written: The number of user records added to the
+ container. This does not count the prelude or suffix of the container
+ introduced by the begin() and end() methods.
+ """
def __init__(self, write_func):
"""Constructor.
@@ -69,6 +74,7 @@
"""
self._write_func = write_func
self.current_offset = 0
+ self.records_written = 0
def begin(self):
"""Begin writing a container."""
@@ -112,6 +118,7 @@
self.write_func("\n")
# Finally, the contents.
self.write_func(bytes)
+ self.records_written += 1
# return a memo of where we wrote data to allow random access.
return current_offset, self.current_offset - current_offset
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/remote.py 2007-08-22 06:23:52 +0000
@@ -277,6 +277,28 @@
self._ensure_real()
return self._real_repository.commit_write_group()
+ def abort_write_group(self):
+ """Complete a write group on the decorated repository.
+
+ Smart methods peform operations in a single step so this api
+ is not really applicable except as a compatibility thunk
+ for older plugins that don't use e.g. the CommitBuilder
+ facility.
+ """
+ self._ensure_real()
+ return self._real_repository.abort_write_group()
+
+ def commit_write_group(self):
+ """Complete a write group on the decorated repository.
+
+ Smart methods peform operations in a single step so this api
+ is not really applicable except as a compatibility thunk
+ for older plugins that don't use e.g. the CommitBuilder
+ facility.
+ """
+ self._ensure_real()
+ return self._real_repository.commit_write_group()
+
def _ensure_real(self):
"""Ensure that there is a _real_repository set.
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/repofmt/pack_repo.py 2007-08-22 06:23:52 +0000
@@ -214,18 +214,18 @@
time.ctime(), self.repo._upload_transport.base, random_name,
plain_pack_list)
start_time = time.time()
- write_stream = self.repo._upload_transport.open_file_stream(random_name)
+ write_stream = self.repo._upload_transport.open_write_stream(random_name)
if 'fetch' in debug.debug_flags:
mutter('%s: create_pack: pack stream open: %s%s t+%6.3fs',
time.ctime(), self.repo._upload_transport.base, random_name,
time.time() - start_time)
pack_hash = md5.new()
buffer = []
- def write_data(bytes, update=pack_hash.update):
+ def write_data(bytes, update=pack_hash.update, write=write_stream.write):
buffer.append(bytes)
if len(buffer) == 640:
bytes = ''.join(buffer)
- write_stream(bytes)
+ write(bytes)
update(bytes)
del buffer[:]
writer = pack.ContainerWriter(write_data)
@@ -280,7 +280,7 @@
writer.end()
if len(buffer):
bytes = ''.join(buffer)
- write_stream(bytes)
+ write_stream.write(bytes)
pack_hash.update(bytes)
new_name = pack_hash.hexdigest()
# if nothing has been written, discard the new pack.
@@ -294,7 +294,7 @@
# add to names
self.allocate(new_name)
# rename into place
- self.repo._upload_transport.close_file_stream(random_name)
+ write_stream.close()
self.repo._upload_transport.rename(random_name, '../packs/' + new_name + '.pack')
result = Pack()
result.name = new_name
@@ -1152,11 +1152,12 @@
def _start_write_group(self):
random_name = self.control_files._lock.nonce
self._open_pack_tuple = (self._upload_transport, random_name + '.pack')
- write_stream = self._upload_transport.open_file_stream(random_name + '.pack')
+ write_stream = self._upload_transport.open_write_stream(random_name + '.pack')
+ self._write_stream = write_stream
self._open_pack_hash = md5.new()
- def write_data(bytes):
- write_stream(bytes)
- self._open_pack_hash.update(bytes)
+ def write_data(bytes, write=write_stream.write, update=self._open_pack_hash.update):
+ write(bytes)
+ update(bytes)
self._open_pack_writer = pack.ContainerWriter(write_data)
self._open_pack_writer.begin()
self._packs.setup()
@@ -1181,7 +1182,7 @@
self.weave_store.flush(new_name)
self._inv_thunk.flush(new_name)
self._revision_store.flush(new_name)
- self._upload_transport.close_file_stream(self._open_pack_tuple[1])
+ self._write_stream.close()
self._upload_transport.rename(self._open_pack_tuple[1],
'../packs/' + new_name + '.pack')
self._open_pack_tuple = None
@@ -1197,6 +1198,7 @@
# delta.
self._packs.reset()
self._open_pack_hash = None
+ self._write_stream = None
def get_inventory_weave(self):
return self._inv_thunk.get_weave()
@@ -1269,11 +1271,12 @@
def _start_write_group(self):
random_name = self.control_files._lock.nonce
self._open_pack_tuple = (self._upload_transport, random_name + '.pack')
- write_stream = self._upload_transport.open_file_stream(random_name + '.pack')
+ write_stream = self._upload_transport.open_write_stream(random_name + '.pack')
+ self._write_stream = write_stream
self._open_pack_hash = md5.new()
- def write_data(bytes):
- write_stream(bytes)
- self._open_pack_hash.update(bytes)
+ def write_data(bytes, write=write_stream.write, update=self._open_pack_hash.update):
+ write(bytes)
+ update(bytes)
self._open_pack_writer = pack.ContainerWriter(write_data)
self._open_pack_writer.begin()
self._packs.setup()
@@ -1298,7 +1301,7 @@
self.weave_store.flush(new_name)
self._inv_thunk.flush(new_name)
self._revision_store.flush(new_name)
- self._upload_transport.close_file_stream(self._open_pack_tuple[1])
+ self._write_stream.close()
self._upload_transport.rename(self._open_pack_tuple[1],
'../packs/' + new_name + '.pack')
self._open_pack_tuple = None
@@ -1314,6 +1317,7 @@
# delta.
self._packs.reset()
self._open_pack_hash = None
+ self._write_stream = None
def get_inventory_weave(self):
return self._inv_thunk.get_weave()
=== modified file 'bzrlib/tests/revisionstore_implementations/test_all.py'
--- a/bzrlib/tests/revisionstore_implementations/test_all.py 2007-07-11 16:42:37 +0000
+++ b/bzrlib/tests/revisionstore_implementations/test_all.py 2007-08-22 06:23:52 +0000
@@ -62,11 +62,18 @@
# has of None -> True
self.assertTrue(self.store.has_revision_id('null:', self.transaction))
+ def test_get_revision_missing(self):
+ # get_revision('B') -> raises NoSuchRevision
+ self.assertRaises(errors.NoSuchRevision,
+ self.store.get_revision,
+ 'B',
+ self.transaction)
+
def test_get_revision_none(self):
# get_revision(None) -> raises NoSuchRevision
self.assertRaises(errors.NoSuchRevision,
self.store.get_revision,
- 'B',
+ None,
self.transaction)
def test_add_signature_text_missing(self):
=== modified file 'bzrlib/tests/test_pack.py'
--- a/bzrlib/tests/test_pack.py 2007-08-08 02:57:22 +0000
+++ b/bzrlib/tests/test_pack.py 2007-08-15 01:12:57 +0000
@@ -40,6 +40,13 @@
self.assertEqual('Bazaar pack format 1 (introduced in 0.18)\n',
output.getvalue())
+ def test_zero_records_written_after_begin(self):
+ """After begin is written, 0 records have been written."""
+ output = StringIO()
+ writer = pack.ContainerWriter(output.write)
+ writer.begin()
+ self.assertEqual(0, writer.records_written)
+
def test_end(self):
"""The end() method writes an End Marker record."""
output = StringIO()
@@ -49,6 +56,23 @@
self.assertEqual('Bazaar pack format 1 (introduced in 0.18)\nE',
output.getvalue())
+ def test_empty_end_does_not_add_a_record_to_records_written(self):
+ """The end() method does not count towards the records written."""
+ output = StringIO()
+ writer = pack.ContainerWriter(output.write)
+ writer.begin()
+ writer.end()
+ self.assertEqual(0, writer.records_written)
+
+ def test_non_empty_end_does_not_add_a_record_to_records_written(self):
+ """The end() method does not count towards the records written."""
+ output = StringIO()
+ writer = pack.ContainerWriter(output.write)
+ writer.begin()
+ writer.add_bytes_record('foo', names=[])
+ writer.end()
+ self.assertEqual(1, writer.records_written)
+
def test_add_bytes_record_no_name(self):
"""Add a bytes record with no name."""
output = StringIO()
@@ -131,6 +155,16 @@
errors.InvalidRecordError,
writer.add_bytes_record, 'abc', names=[('bad name', )])
+ def test_add_bytes_records_add_to_records_written(self):
+ """Adding a Bytes record increments the records_written counter."""
+ output = StringIO()
+ writer = pack.ContainerWriter(output.write)
+ writer.begin()
+ writer.add_bytes_record('foo', names=[])
+ self.assertEqual(1, writer.records_written)
+ writer.add_bytes_record('foo', names=[])
+ self.assertEqual(2, writer.records_written)
+
class TestContainerReader(tests.TestCase):
=== modified file 'bzrlib/tests/test_transport_implementations.py'
--- a/bzrlib/tests/test_transport_implementations.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/tests/test_transport_implementations.py 2007-08-22 06:23:52 +0000
@@ -229,28 +229,28 @@
self.assertRaises(NoSuchFile, t.get_bytes, 'c')
- def test_get_with_open_file_stream_sees_all_content(self):
+ def test_get_with_open_write_stream_sees_all_content(self):
t = self.get_transport()
if t.is_readonly():
return
- handle = t.open_file_stream('foo')
+ handle = t.open_write_stream('foo')
try:
- handle('b')
+ handle.write('b')
self.assertEqual('b', t.get('foo').read())
finally:
- t.close_file_stream('foo')
+ handle.close()
- def test_get_bytes_with_open_file_stream_sees_all_content(self):
+ def test_get_bytes_with_open_write_stream_sees_all_content(self):
t = self.get_transport()
if t.is_readonly():
return
- handle = t.open_file_stream('foo')
+ handle = t.open_write_stream('foo')
try:
- handle('b')
+ handle.write('b')
self.assertEqual('b', t.get_bytes('foo'))
self.assertEqual('b', t.get('foo').read())
finally:
- t.close_file_stream('foo')
+ handle.close()
def test_put_bytes(self):
t = self.get_transport()
@@ -583,11 +583,11 @@
t = self.get_transport()
if t.is_readonly():
return
- handle = t.open_file_stream('foo')
+ handle = t.open_write_stream('foo')
try:
self.assertEqual('', t.get_bytes('foo'))
finally:
- t.close_file_stream('foo')
+ handle.close()
def test_opening_a_file_stream_can_set_mode(self):
t = self.get_transport()
@@ -597,8 +597,8 @@
# Can't roundtrip, so no need to run this test
return
def check_mode(name, mode, expected):
- handle = t.open_file_stream(name, mode=mode)
- t.close_file_stream(name)
+ handle = t.open_write_stream(name, mode=mode)
+ handle.close()
self.assertTransportMode(t, name, expected)
check_mode('mode644', 0644, 0644)
check_mode('mode666', 0666, 0666)
@@ -1485,16 +1485,16 @@
self.assertEqual(d[2], (0, '0'))
self.assertEqual(d[3], (3, '34'))
- def test_get_with_open_file_stream_sees_all_content(self):
+ def test_get_with_open_write_stream_sees_all_content(self):
t = self.get_transport()
if t.is_readonly():
return
- handle = t.open_file_stream('foo')
+ handle = t.open_write_stream('foo')
try:
- handle('bcd')
+ handle.write('bcd')
self.assertEqual([(0, 'b'), (2, 'd')], list(t.readv('foo', ((0,1), (2,1)))))
finally:
- t.close_file_stream('foo')
+ handle.close()
def test_get_smart_medium(self):
"""All transports must either give a smart medium, or know they can't.
=== modified file 'bzrlib/transport/__init__.py'
--- a/bzrlib/transport/__init__.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/transport/__init__.py 2007-08-22 06:23:52 +0000
@@ -257,6 +257,49 @@
self._fail()
+class FileStream(object):
+ """Base class for FileStreams."""
+
+ def __init__(self, transport, relpath):
+ """Create a FileStream for relpath on transport."""
+ self.transport = transport
+ self.relpath = relpath
+
+ def _close(self):
+ """A hook point for subclasses that need to take action on close."""
+
+ def close(self):
+ self._close()
+ del _file_streams[self.transport.abspath(self.relpath)]
+
+
+class FileFileStream(FileStream):
+ """A file stream object returned by open_write_stream.
+
+ This version uses a file like object to perform writes.
+ """
+
+ def __init__(self, transport, relpath, file_handle):
+ FileStream.__init__(self, transport, relpath)
+ self.file_handle = file_handle
+
+ def _close(self):
+ self.file_handle.close()
+
+ def write(self, bytes):
+ self.file_handle.write(bytes)
+
+
+class AppendBasedFileStream(FileStream):
+ """A file stream object returned by open_write_stream.
+
+ This version uses append on a transport to perform writes.
+ """
+
+ def write(self, bytes):
+ self.transport.append_bytes(self.relpath, bytes)
+
+
class Transport(object):
"""This class encapsulates methods for retrieving or putting a file
from/to a storage location.
@@ -811,21 +854,23 @@
self.mkdir(path, mode=mode)
return len(self._iterate_over(relpaths, mkdir, pb, 'mkdir', expand=False))
- def open_file_stream(self, relpath, mode=None):
- """Open a file stream at relpath.
-
- A file stream is a callback which adds data to the file. Buffering
- may occur internally until the stream is closed with close_file_stream.
- Calls to readv or the get_* methods will be synchronised with any
- internal buffering that may be present.
-
- :seealso: close_file_stream.
+ def open_write_stream(self, relpath, mode=None):
+ """Open a writable file stream at relpath.
+
+ A file stream is a file like object with a write() method that accepts
+ bytes to write.. Buffering may occur internally until the stream is
+ closed with stream.close(). Calls to readv or the get_* methods will
+ be synchronised with any internal buffering that may be present.
+
:param relpath: The relative path to the file.
:param mode: The mode for the newly created file,
None means just use the default
- :return: A write callback to add data to the file.
+ :return: A FileStream. FileStream objects have two methods, write() and
+ close(). There is no guarantee that data is committed to the file
+ if close() has not been called (even if get() is called on the same
+ path).
"""
- raise NotImplementedError(self.open_file_stream)
+ raise NotImplementedError(self.open_write_stream)
def append_file(self, relpath, f, mode=None):
"""Append bytes from a file-like object to a file at relpath.
=== modified file 'bzrlib/transport/chroot.py'
--- a/bzrlib/transport/chroot.py 2007-08-05 05:38:15 +0000
+++ b/bzrlib/transport/chroot.py 2007-08-22 06:23:52 +0000
@@ -139,8 +139,8 @@
def mkdir(self, relpath, mode=None):
return self._call('mkdir', relpath, mode)
- def open_file_stream(self, relpath, mode=None):
- return self._call('open_file_stream', relpath, mode)
+ def open_write_stream(self, relpath, mode=None):
+ return self._call('open_write_stream', relpath, mode)
def put_file(self, relpath, f, mode=None):
return self._call('put_file', relpath, f, mode)
=== modified file 'bzrlib/transport/decorator.py'
--- a/bzrlib/transport/decorator.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/transport/decorator.py 2007-08-22 06:23:52 +0000
@@ -118,9 +118,9 @@
"""See Transport.mkdir()."""
return self._decorated.mkdir(relpath, mode)
- def open_file_stream(self, relpath, mode=None):
- """See Transport.open_file_stream."""
- return self._decorated.open_file_stream(relpath, mode=mode)
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
+ return self._decorated.open_write_stream(relpath, mode=mode)
def put_file(self, relpath, f, mode=None):
"""See Transport.put_file()."""
=== modified file 'bzrlib/transport/fakevfat.py'
--- a/bzrlib/transport/fakevfat.py 2007-02-11 16:06:13 +0000
+++ b/bzrlib/transport/fakevfat.py 2007-08-15 06:53:07 +0000
@@ -64,6 +64,10 @@
which actually stored the files.
"""
+ def _can_roundtrip_unix_modebits(self):
+ """See Transport._can_roundtrip_unix_modebits()."""
+ return False
+
@classmethod
def _get_url_prefix(self):
"""Readonly transport decorators are invoked via 'vfat+'"""
=== modified file 'bzrlib/transport/ftp.py'
--- a/bzrlib/transport/ftp.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/transport/ftp.py 2007-08-22 06:23:52 +0000
@@ -46,6 +46,7 @@
)
from bzrlib.trace import mutter, warning
from bzrlib.transport import (
+ AppendBasedFileStream,
_file_streams,
Server,
ConnectedTransport,
@@ -323,13 +324,12 @@
self._translate_perm_error(e, abspath,
unknown_exc=errors.FileExists)
- def open_file_stream(self, relpath):
- """See Transport.open_file_stream."""
- def append_data(bytes):
- self.append_bytes(relpath, bytes)
- self.put_bytes(relpath, "")
- _file_streams[self.abspath(relpath)] = append_data
- return append_data
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
+ self.put_bytes(relpath, "", mode)
+ result = AppendBasedFileStream(self, relpath)
+ _file_streams[self.abspath(relpath)] = result
+ return result
def recommended_page_size(self):
"""See Transport.recommended_page_size().
=== modified file 'bzrlib/transport/local.py'
--- a/bzrlib/transport/local.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/transport/local.py 2007-08-22 06:23:52 +0000
@@ -307,13 +307,13 @@
"""Create a directory at the given path."""
self._mkdir(self._abspath(relpath), mode=mode)
- def open_file_stream(self, relpath, mode=None):
- """See Transport.open_file_stream."""
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
# initialise the file
self.put_bytes_non_atomic(relpath, "", mode=mode)
handle = open(self._abspath(relpath), 'wb')
transport._file_streams[self.abspath(relpath)] = handle
- return handle.write
+ return transport.FileFileStream(self, relpath, handle)
def _get_append_file(self, relpath, mode=None):
"""Call os.open() for the given relpath"""
=== modified file 'bzrlib/transport/memory.py'
--- a/bzrlib/transport/memory.py 2007-08-05 02:57:45 +0000
+++ b/bzrlib/transport/memory.py 2007-08-22 06:23:52 +0000
@@ -36,6 +36,7 @@
)
from bzrlib.trace import mutter
from bzrlib.transport import (
+ AppendBasedFileStream,
_file_streams,
LateReadError,
register_transport,
@@ -170,13 +171,12 @@
raise FileExists(relpath)
self._dirs[_abspath]=mode
- def open_file_stream(self, relpath):
- """See Transport.open_file_stream."""
- def append_data(bytes):
- self.append_bytes(relpath, bytes)
- self.put_bytes(relpath, "")
- _file_streams[self.abspath(relpath)] = append_data
- return append_data
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
+ self.put_bytes(relpath, "", mode)
+ result = AppendBasedFileStream(self, relpath)
+ _file_streams[self.abspath(relpath)] = result
+ return result
def listable(self):
"""See Transport.listable."""
=== modified file 'bzrlib/transport/remote.py'
--- a/bzrlib/transport/remote.py 2007-08-05 02:57:45 +0000
+++ b/bzrlib/transport/remote.py 2007-08-22 06:23:52 +0000
@@ -217,13 +217,12 @@
self._serialise_optional_mode(mode))
self._translate_error(resp)
- def open_file_stream(self, relpath):
- """See Transport.open_file_stream."""
- def append_data(bytes):
- self.append_bytes(relpath, bytes)
- self.put_bytes(relpath, "")
- transport._file_streams[self.abspath(relpath)] = append_data
- return append_data
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
+ self.put_bytes(relpath, "", mode)
+ result = transport.AppendBasedFileStream(self, relpath)
+ transport._file_streams[self.abspath(relpath)] = result
+ return result
def put_bytes(self, relpath, upload_contents, mode=None):
# FIXME: upload_file is probably not safe for non-ascii characters -
=== modified file 'bzrlib/transport/sftp.py'
--- a/bzrlib/transport/sftp.py 2007-08-22 01:02:35 +0000
+++ b/bzrlib/transport/sftp.py 2007-08-22 06:23:52 +0000
@@ -54,6 +54,7 @@
)
from bzrlib.trace import mutter, warning
from bzrlib.transport import (
+ FileFileStream,
_file_streams,
local,
register_urlparse_netloc_protocol,
@@ -546,8 +547,8 @@
"""Create a directory at the given path."""
self._mkdir(self._remote_path(relpath), mode=mode)
- def open_file_stream(self, relpath, mode=None):
- """See Transport.open_file_stream."""
+ def open_write_stream(self, relpath, mode=None):
+ """See Transport.open_write_stream."""
# initialise the file to zero-length
# this is three round trips, but we don't use this
# api more than once per write_group at the moment so
@@ -566,7 +567,7 @@
self._translate_io_exception(e, abspath,
': unable to open')
_file_streams[self.abspath(relpath)] = handle
- return handle.write
+ return FileFileStream(self, relpath, handle)
def _translate_io_exception(self, e, path, more_info='',
failure_exc=PathError):
=== modified file 'doc/developers/repository.txt'
--- a/doc/developers/repository.txt 2007-08-10 06:32:12 +0000
+++ b/doc/developers/repository.txt 2007-08-22 06:23:52 +0000
@@ -343,7 +343,6 @@
this approach reads 10 entire packs every 10 commits,
100 every 100, 1000 every 1000
-
Caching and writeing of data
============================
More information about the bazaar-commits
mailing list