Rev 3241: Implement checkout entirely via dirstate (abentley) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Feb 28 03:23:07 GMT 2008
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3241
revision-id:pqm at pqm.ubuntu.com-20080228032258-4mdmqlx603ak6x2w
parent: pqm at pqm.ubuntu.com-20080227213154-a7egrkiapeuvmu3b
parent: aaron at aaronbentley.com-20080228013841-5j4n9784mc4fpeim
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2008-02-28 03:22:58 +0000
message:
Implement checkout entirely via dirstate (abentley)
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_inv.py test_inv.py-20070311221604-ighlq8tbn5xq0kuo-1
bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
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: 3146.8.20
revision-id:aaron at aaronbentley.com-20080228013841-5j4n9784mc4fpeim
parent: aaron at aaronbentley.com-20080228013335-a6izyivlpd7ht72z
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: no-inventory5
timestamp: Wed 2008-02-27 20:38:41 -0500
message:
Fix trailing whitespace
modified:
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3146.8.19
revision-id:aaron at aaronbentley.com-20080228013335-a6izyivlpd7ht72z
parent: aaron at aaronbentley.com-20080228003628-pjxtmj4qxibbnt8e
parent: pqm at pqm.ubuntu.com-20080227213154-a7egrkiapeuvmu3b
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: no-inventory5
timestamp: Wed 2008-02-27 20:33:35 -0500
message:
Merge with bzr.dev
removed:
bzrlib/plugins/multiparent.py mpregen-20070411063203-5x9z7i73add0d6f6-1
index.txt index.txt-20071121073725-0corxykv5irjal00-1
added:
bzrlib/plugins/launchpad/test_lp_service.py test_lp_service.py-20080213034527-drf0ucr2x1js3onb-1
doc/developers/development-repo.txt developmentrepo.txt-20080102200205-raj42k61dch8pjmj-1
tools/package_mf.py package_mf.py-20080206141953-323gd0qb2z3tn5pc-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/annotate.py annotate.py-20050922133147-7c60541d2614f022
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/commands.py __init__.py-20050617152058-1b6530d9ab85c11c
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/delta.py delta.py-20050729221636-54cf14ef94783d0a
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/plugin.py plugin.py-20050622060424-829b654519533d69
bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
bzrlib/plugins/launchpad/lp_indirect.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
bzrlib/plugins/launchpad/test_lp_indirect.py test_lp_indirect.py-20070126002743-oyle362tzv9cd8mi-1
bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
bzrlib/progress.py progress.py-20050610070202-df9faaab791964c0
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/smart/bzrdir.py bzrdir.py-20061122024551-ol0l0o0oofsu9b3t-1
bzrlib/smart/medium.py medium.py-20061103051856-rgu2huy59fkz902q-1
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/smart/request.py request.py-20061108095550-gunadhxmzkdjfeek-1
bzrlib/status.py status.py-20050505062338-431bfa63ec9b19e6
bzrlib/symbol_versioning.py symbol_versioning.py-20060105104851-9ecf8af605d15a80
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_bundle_info.py test_bundle_info.py-20070816181255-eiuodwxuqu7w7gxf-1
bzrlib/tests/blackbox/test_checkout.py test_checkout.py-20060211231752-a5cde67cf70af854
bzrlib/tests/blackbox/test_outside_wt.py test_outside_wt.py-20060116200058-98edd33e7db8bdde
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
bzrlib/tests/blackbox/test_version.py test_version.py-20070312060045-ol7th9z035r3im3d-1
bzrlib/tests/blackbox/test_version_info.py test_bb_version_info.py-20051228204928-91711c6559d952f7
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_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_dirstate.py test_dirstate.py-20060728012006-d6mvoihjb3je9peu-2
bzrlib/tests/test_errors.py test_errors.py-20060210110251-41aba2deddf936a8
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_info.py test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
bzrlib/tests/test_merge.py testmerge.py-20050905070950-c1b5aa49ff911024
bzrlib/tests/test_nonascii.py testnonascii.py-20051018022645-ea1d8b6477b058a6
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_progress.py test_progress.py-20060308160359-978c397bc79b7fda
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_revisionnamespaces.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_ssh_transport.py test_ssh_transport.p-20070105153201-f7iq2bosvgjbdgc3-1
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/test_version_info.py test_version_info.py-20051228204928-2c364e30b702b41b
bzrlib/tests/test_workingtree.py testworkingtree.py-20051004024258-b88d0fe8f101d468
bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/ssh.py ssh.py-20060824042150-0s9787kng6zv1nwq-1
bzrlib/util/configobj/configobj.py configobj.py-20051018184548-06992a2246425e3e
bzrlib/util/configobj/docs/BSD-LICENSE.txt BSDLICENSE.txt-20051018184548-29b89ff3102657f5
bzrlib/util/configobj/docs/configobj.txt configobj.txt-20051018184548-4949b5f17e6a19c7
bzrlib/util/configobj/docs/validate.txt validate.txt-20051018184548-9e0e5ad913e258f5
bzrlib/version_info_formats/format_custom.py format_custom.py-20071029100350-ajovqhbpb5khf6gu-1
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/en/user-guide/bazaar_workflows.txt bazaar_workflows.txt-20071114035000-q36a9h57ps06uvnl-1
doc/en/user-guide/branching_a_project.txt branching_a_project.-20071122141511-0knao2lklsdsvb1q-2
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
tools/win32/bzr.iss.cog bzr.iss.cog-20060622100836-b3yup582rt3y0nvm-5
------------------------------------------------------------
revno: 3146.8.18
revision-id:aaron at aaronbentley.com-20080228003628-pjxtmj4qxibbnt8e
parent: aaron at aaronbentley.com-20080227235013-4wrfby3mq2pfeg8e
parent: pqm at pqm.ubuntu.com-20080125195940-iwy2onaiiges6k4t
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: no-inventory5
timestamp: Wed 2008-02-27 19:36:28 -0500
message:
Merge with dev
added:
bzrlib/tests/repository_implementations/test_has_revisions.py test_has_revisions.p-20080111035443-xaupgdsx5fw1q54b-1
bzrlib/tests/test_http_implementations.py test_http_implementa-20071218210003-65nh81gglcfvurw6-1
contrib/bzr_access bzr_access-20071210163004-c9lb1renhra2ncg0-1
doc/developers/inventory.txt inventory.txt-20080103013957-opkrhxy6lmywmx4i-1
doc/developers/lca-merge.txt lcamerge.txt-20080103061803-9isydn4ivgwrvorw-1
doc/en/tutorials/using_bazaar_with_launchpad.txt using_bazaar_with_lp-20071211073140-7msh8uf9a9h4y9hb-1
doc/en/user-guide/revnos.txt revnos.txt-20080111231928-pbntxea0ynh9ww1t-1
renamed:
bzrlib/tests/HTTPTestUtil.py => bzrlib/tests/http_utils.py HTTPTestUtil.py-20050914180604-247d3aafb7a43343
bzrlib/tests/HttpServer.py => bzrlib/tests/http_server.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
README README-20050309040720-8f368abf9f346b9d
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/bugtracker.py bugtracker.py-20070410073305-vu1vu1qosjurg8kb-1
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/conflicts.py conflicts.py-20051001061850-78ef952ba63d2b42
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/doc/api/__init__.py __init__.py-20051224020744-7b87d590843855bc
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_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
bzrlib/help_topics/en/conflicts.txt conflicts.txt-20070723221841-ns3jvwxdb4okn6fk-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/option.py option.py-20051014052914-661fb36e76e7362f
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/plugin.py plugin.py-20050622060424-829b654519533d69
bzrlib/progress.py progress.py-20050610070202-df9faaab791964c0
bzrlib/reconfigure.py reconfigure.py-20070908040425-6ykgo7escxhyrg9p-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/smart/client.py client.py-20061116014825-2k6ada6xgulslami-1
bzrlib/smart/medium.py medium.py-20061103051856-rgu2huy59fkz902q-1
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/smart/request.py request.py-20061108095550-gunadhxmzkdjfeek-1
bzrlib/smart/vfs.py vfs.py-20061108095550-gunadhxmzkdjfeek-2
bzrlib/symbol_versioning.py symbol_versioning.py-20060105104851-9ecf8af605d15a80
bzrlib/tests/TestUtil.py TestUtil.py-20050824080200-5f70140a2d938694
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_annotate.py testannotate.py-20051013044000-457f44801bfa9d39
bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
bzrlib/tests/blackbox/test_ignore.py test_ignore.py-20060703063225-4tm8dc2pa7wwg2t3-1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
bzrlib/tests/blackbox/test_too_much.py blackbox.py-20050620052131-a7370d756399f615
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_http.py test_http.py-20060731224648-2eef7ae5yja95rya-1
bzrlib/tests/branch_implementations/test_parent.py test_parent.py-20050830052751-5e62766623c32222
bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
bzrlib/tests/inventory_implementations/__init__.py __init__.py-20070821044532-olbadbokgv3qv1yd-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_annotate.py test_annotate.py-20061213215015-sttc9agsxomls7q0-1
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_conflicts.py test_conflicts.py-20051006031059-e2dad9bbeaa5891f
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_graph.py test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_http_response.py test_http_response.py-20060628233143-950b2a482a32505d
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_merge.py testmerge.py-20050905070950-c1b5aa49ff911024
bzrlib/tests/test_merge_core.py test_merge_core.py-20050824132511-eb99b23a0eec641b
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
bzrlib/tests/test_progress.py test_progress.py-20060308160359-978c397bc79b7fda
bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-2
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_revert.py test_revert.py-20060828180832-fqb1v6ecpyvnlitj-1
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/test_tsort.py testtsort.py-20051025073946-27da871c394d5be4
bzrlib/tests/test_urlutils.py test_urlutils.py-20060502192900-46b1f9579987cf9c
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_win32utils.py test_win32utils.py-20070713181630-8xsrjymd3e8mgw23-108
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
bzrlib/transport/http/_pycurl.py pycurlhttp.py-20060110060940-4e2a705911af77a6
bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
bzrlib/transport/http/_urllib2_wrappers.py _urllib2_wrappers.py-20060913231729-ha9ugi48ktx481ao-1
bzrlib/transport/http/response.py _response.py-20060613154423-a2ci7hd4iw5c7fnt-1
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/tsort.py tsort.py-20051025073946-7808f6aaf7d07208
bzrlib/urlutils.py urlutils.py-20060502195429-e8a161ecf8fac004
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
bzrlib/xml_serializer.py xml.py-20050309040759-57d51586fdec365d
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/en/user-guide/bug_trackers.txt bug_trackers.txt-20070713223459-khxdlcudraii95uv-1
doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
tools/rst2html.py rst2html.py-20060817120932-gn177u8v0008txhu-1
bzrlib/tests/http_utils.py HTTPTestUtil.py-20050914180604-247d3aafb7a43343
bzrlib/tests/http_server.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
------------------------------------------------------------
revno: 3146.8.17
revision-id:aaron at aaronbentley.com-20080227235013-4wrfby3mq2pfeg8e
parent: abentley at panoramicfeedback.com-20080103221440-0y6atamnscjnoh9s
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: no-inventory5
timestamp: Wed 2008-02-27 18:50:13 -0500
message:
Change to explicit file_id list
modified:
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3146.8.16
revision-id:abentley at panoramicfeedback.com-20080103221440-0y6atamnscjnoh9s
parent: aaron.bentley at utoronto.ca-20071231203605-2kp31tw9k4ui5sgw
committer: Aaron Bentley <abentley at panoramicfeedback.com>
branch nick: no-inventory5
timestamp: Thu 2008-01-03 17:14:40 -0500
message:
Updates from review
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
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: 3146.8.15
revision-id:aaron.bentley at utoronto.ca-20071231203605-2kp31tw9k4ui5sgw
parent: aaron.bentley at utoronto.ca-20071231202953-06fukpgs3zzlssxa
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 15:36:05 -0500
message:
Cleanup and docs
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 3146.8.14
revision-id:aaron.bentley at utoronto.ca-20071231202953-06fukpgs3zzlssxa
parent: aaron.bentley at utoronto.ca-20071231202858-ha1jk5qyafv7jg2k
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 15:29:53 -0500
message:
Remove unused var
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.13
revision-id:aaron.bentley at utoronto.ca-20071231202858-ha1jk5qyafv7jg2k
parent: aaron.bentley at utoronto.ca-20071231202212-r0q3n2kxb0tvdwyq
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 15:28:58 -0500
message:
Clean up code
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.12
revision-id:aaron.bentley at utoronto.ca-20071231202212-r0q3n2kxb0tvdwyq
parent: aaron.bentley at utoronto.ca-20071231194738-2ucz6alk4jxd4e96
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 15:22:12 -0500
message:
Add a flush to rename_one
modified:
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 3146.8.11
revision-id:aaron.bentley at utoronto.ca-20071231194738-2ucz6alk4jxd4e96
parent: aaron.bentley at utoronto.ca-20071231192011-t0aj8nilc0t2eio7
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 14:47:38 -0500
message:
Fix dirstate/inventory dance, mark dirstate modified and in memory
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 3146.8.10
revision-id:aaron.bentley at utoronto.ca-20071231192011-t0aj8nilc0t2eio7
parent: aaron.bentley at utoronto.ca-20071231191758-ms44mbfdvym8nomi
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 14:20:11 -0500
message:
Clean up some variable names
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.9
revision-id:aaron.bentley at utoronto.ca-20071231191758-ms44mbfdvym8nomi
parent: aaron.bentley at utoronto.ca-20071231191334-7qxwlt6tk7ds9ugi
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 14:17:58 -0500
message:
Fix child execute bit
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.8
revision-id:aaron.bentley at utoronto.ca-20071231191334-7qxwlt6tk7ds9ugi
parent: aaron.bentley at utoronto.ca-20071231191251-git7fbe9mm2um9gr
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 14:13:34 -0500
message:
Remove debug code
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.7
revision-id:aaron.bentley at utoronto.ca-20071231191251-git7fbe9mm2um9gr
parent: aaron.bentley at utoronto.ca-20071231180920-3fqtecnwuww69tzy
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 14:12:51 -0500
message:
Remove unused code
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
------------------------------------------------------------
revno: 3146.8.6
revision-id:aaron.bentley at utoronto.ca-20071231180920-3fqtecnwuww69tzy
parent: aaron.bentley at utoronto.ca-20071231161005-3l7s9521wm9zbjxg
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 13:09:20 -0500
message:
Get apply_inventory_delta almost working properly
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3146.8.5
revision-id:aaron.bentley at utoronto.ca-20071231161005-3l7s9521wm9zbjxg
parent: aaron.bentley at utoronto.ca-20071231053539-lpxc6wewg2r17bd9
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 11:10:05 -0500
message:
Get apply_inventory_delta kinda working, but not children
modified:
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/tests/workingtree_implementations/test_inv.py test_inv.py-20070311221604-ighlq8tbn5xq0kuo-1
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 3146.8.4
revision-id:aaron.bentley at utoronto.ca-20071231053539-lpxc6wewg2r17bd9
parent: aaron.bentley at utoronto.ca-20071230222732-j9b28xdzcksa7e7e
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Mon 2007-12-31 00:35:39 -0500
message:
Eliminate direct use of inventory from transform application
modified:
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
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: 3146.8.3
revision-id:aaron.bentley at utoronto.ca-20071230222732-j9b28xdzcksa7e7e
parent: aaron.bentley at utoronto.ca-20071230222401-mopeude5ha916n1h
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Sun 2007-12-30 17:27:32 -0500
message:
Avoid inventory in TT._apply_removals
modified:
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3146.8.2
revision-id:aaron.bentley at utoronto.ca-20071230222401-mopeude5ha916n1h
parent: aaron.bentley at utoronto.ca-20071230213111-wlv22dbxj7xm9rl2
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Sun 2007-12-30 17:24:01 -0500
message:
Introduce iter_all_file_ids, to avoid hitting Inventory for this case
modified:
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
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: 3146.8.1
revision-id:aaron.bentley at utoronto.ca-20071230213111-wlv22dbxj7xm9rl2
parent: pqm at pqm.ubuntu.com-20071228175832-9kboqtkemnuzzlab
committer: Aaron Bentley <aaron.bentley at utoronto.ca>
branch nick: no-inventory5
timestamp: Sun 2007-12-30 16:31:11 -0500
message:
Fix two tree.inventory uses in checkout
modified:
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
=== modified file 'bzrlib/dirstate.py'
--- a/bzrlib/dirstate.py 2008-02-12 02:14:04 +0000
+++ b/bzrlib/dirstate.py 2008-02-28 01:33:35 +0000
@@ -1166,6 +1166,68 @@
raise
return result
+ def update_by_delta(self, delta):
+ """Apply an inventory delta to the dirstate for tree 0
+
+ :param delta: An inventory delta. See Inventory.apply_delta for
+ details.
+ """
+ self._read_dirblocks_if_needed()
+ insertions = {}
+ removals = {}
+ for old_path, new_path, file_id, inv_entry in sorted(delta,
+ reverse=True):
+ assert file_id not in insertions
+ assert file_id not in removals
+ if old_path is not None:
+ old_path = old_path.encode('utf-8')
+ removals[file_id] = old_path
+ if new_path is not None:
+ new_path = new_path.encode('utf-8')
+ dirname, basename = osutils.split(new_path)
+ key = (dirname, basename, file_id)
+ minikind = DirState._kind_to_minikind[inv_entry.kind]
+ if minikind == 't':
+ fingerprint = inv_entry.reference_revision
+ else:
+ fingerprint = ''
+ insertions[file_id] = (key, minikind, inv_entry.executable,
+ fingerprint, new_path)
+ if None not in (old_path, new_path):
+ for child in self._iter_child_entries(0, old_path):
+ if child[0][2] in insertions or child[0][2] in removals:
+ continue
+ child_dirname = child[0][0]
+ child_basename = child[0][1]
+ minikind = child[1][0][0]
+ fingerprint = child[1][0][4]
+ executable = child[1][0][3]
+ old_child_path = osutils.pathjoin(child[0][0],
+ child[0][1])
+ removals[child[0][2]] = old_child_path
+ child_suffix = child_dirname[len(old_path):]
+ new_child_dirname = (new_path + child_suffix)
+ key = (new_child_dirname, child_basename, child[0][2])
+ new_child_path = os.path.join(new_child_dirname,
+ child_basename)
+ insertions[child[0][2]] = (key, minikind, executable,
+ fingerprint, new_child_path)
+ self._apply_removals(removals.values())
+ self._apply_insertions(insertions.values())
+
+ def _apply_removals(self, removals):
+ for path in sorted(removals, reverse=True):
+ dirname, basename = osutils.split(path)
+ block_i, entry_i, d_present, f_present = \
+ self._get_block_entry_index(dirname, basename, 0)
+ entry = self._dirblocks[block_i][1][entry_i]
+ self._make_absent(entry)
+
+ def _apply_insertions(self, adds):
+ for key, minikind, executable, fingerprint, path_utf8 in sorted(adds):
+ self.update_minimal(key, minikind, executable, fingerprint,
+ path_utf8=path_utf8)
+
def update_basis_by_delta(self, delta, new_revid):
"""Update the parents of this tree after a commit.
=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py 2008-02-24 16:42:13 +0000
+++ b/bzrlib/osutils.py 2008-02-28 01:33:35 +0000
@@ -149,7 +149,7 @@
try:
return _mapper(_lstat(f).st_mode)
except OSError, e:
- if getattr(e, 'errno', None) == errno.ENOENT:
+ if getattr(e, 'errno', None) in (errno.ENOENT, errno.ENOTDIR):
raise errors.NoSuchFile(f)
raise
=== modified file 'bzrlib/tests/tree_implementations/test_tree.py'
--- a/bzrlib/tests/tree_implementations/test_tree.py 2007-08-30 02:02:21 +0000
+++ b/bzrlib/tests/tree_implementations/test_tree.py 2008-01-03 22:14:40 +0000
@@ -121,6 +121,26 @@
finally:
tree.unlock()
+ def test_all_file_ids(self):
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ tree.lock_read()
+ self.addCleanup(tree.unlock)
+ self.assertEqual(tree.all_file_ids(),
+ set(['b-id', 'root-id', 'c-id', 'a-id']))
+
+
+class TestStoredKind(TestCaseWithTree):
+
+ def test_stored_kind(self):
+ tree = self.make_branch_and_tree('tree')
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ tree.lock_read()
+ self.addCleanup(tree.unlock)
+ self.assertEqual('file', tree.stored_kind('a-id'))
+ self.assertEqual('directory', tree.stored_kind('b-id'))
+
class TestFileContent(TestCaseWithTree):
=== modified file 'bzrlib/tests/workingtree_implementations/test_inv.py'
--- a/bzrlib/tests/workingtree_implementations/test_inv.py 2007-10-03 05:04:42 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_inv.py 2007-12-31 16:10:05 +0000
@@ -78,6 +78,7 @@
wt.apply_inventory_delta([('foo', 'baz', 'foo-id',
inventory.InventoryDirectory('foo-id', 'baz', root_id))])
# foo/bar should have been followed the rename of its parent to baz/bar
+ self.assertEqual('baz', wt.id2path('foo-id'))
self.assertEqual('baz/bar', wt.id2path('bar-id'))
def test_rename_dir_with_children_with_children(self):
=== modified file 'bzrlib/tests/workingtree_implementations/test_workingtree.py'
--- a/bzrlib/tests/workingtree_implementations/test_workingtree.py 2008-02-24 17:19:56 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_workingtree.py 2008-02-28 01:33:35 +0000
@@ -826,6 +826,17 @@
expected_kind = names[i]
self.assertEqual(expected_kind, actual_kind)
+ def test_stored_kind_with_missing(self):
+ tree = self.make_branch_and_tree('tree')
+ tree.lock_write()
+ self.addCleanup(tree.unlock)
+ self.build_tree(['tree/a', 'tree/b/'])
+ tree.add(['a', 'b'], ['a-id', 'b-id'])
+ os.unlink('tree/a')
+ os.rmdir('tree/b')
+ self.assertEqual('file', tree.stored_kind('a-id'))
+ self.assertEqual('directory', tree.stored_kind('b-id'))
+
def test_missing_file_sha1(self):
"""If a file is missing, its sha1 should be reported as None."""
tree = self.make_branch_and_tree('.')
@@ -865,6 +876,16 @@
raise TestSkipped('WorkingTree2 is not supported')
self.assertEqual(case_sensitive, tree.case_sensitive)
+ def test_all_file_ids_with_missing(self):
+ tree = self.make_branch_and_tree('tree')
+ tree.lock_write()
+ self.addCleanup(tree.unlock)
+ self.build_tree(['tree/a', 'tree/b'])
+ tree.add(['a', 'b'], ['a-id', 'b-id'])
+ os.unlink('tree/a')
+ self.assertEqual(set(['a-id', 'b-id', tree.get_root_id()]),
+ tree.all_file_ids())
+
def test_sprout_hardlink(self):
source = self.make_branch_and_tree('source')
self.build_tree(['source/file'])
=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py 2008-02-24 17:40:02 +0000
+++ b/bzrlib/transform.py 2008-02-28 01:38:41 +0000
@@ -250,7 +250,7 @@
This reflects only files that already exist, not ones that will be
added by transactions.
"""
- path = self._tree.inventory.id2path(inventory_id)
+ path = self._tree.id2path(inventory_id)
return self.trans_id_tree_path(path)
def trans_id_file_id(self, file_id):
@@ -770,8 +770,8 @@
conflicts = []
removed_tree_ids = set((self.tree_file_id(trans_id) for trans_id in
self._removed_id))
- active_tree_ids = set((f for f in self._tree.inventory if
- f not in removed_tree_ids))
+ all_ids = self._tree.all_file_ids()
+ active_tree_ids = all_ids.difference(removed_tree_ids)
for trans_id, file_id in self._new_id.iteritems():
if file_id in active_tree_ids:
old_trans_id = self.trans_id_tree_file_id(file_id)
@@ -1186,7 +1186,6 @@
conflicts = self.find_conflicts()
if len(conflicts) != 0:
raise MalformedTransform(conflicts=conflicts)
- inv = self._tree.inventory
inventory_delta = []
child_pb = bzrlib.ui.ui_factory.nested_progress_bar()
try:
@@ -1196,10 +1195,9 @@
mover = _mover
try:
child_pb.update('Apply phase', 0, 2)
- self._apply_removals(inv, inventory_delta, mover)
+ self._apply_removals(inventory_delta, mover)
child_pb.update('Apply phase', 1, 2)
- modified_paths = self._apply_insertions(inv, inventory_delta,
- mover)
+ modified_paths = self._apply_insertions(inventory_delta, mover)
except:
mover.rollback()
raise
@@ -1212,7 +1210,7 @@
self.finalize()
return _TransformResults(modified_paths, self.rename_count)
- def _apply_removals(self, inv, inventory_delta, mover):
+ def _apply_removals(self, inventory_delta, mover):
"""Perform tree operations that remove directory/inventory names.
That is, delete files that are to be deleted, and put any files that
@@ -1244,12 +1242,15 @@
file_id = self._tree.get_root_id()
else:
file_id = self.tree_file_id(trans_id)
- if file_id is not None:
- inventory_delta.append((path, None, file_id, None))
+ assert file_id is not None
+ # File-id isn't really being deleted, just moved
+ if file_id in self._r_new_id:
+ continue
+ inventory_delta.append((path, None, file_id, None))
finally:
child_pb.finished()
- def _apply_insertions(self, inv, inventory_delta, mover):
+ def _apply_insertions(self, inventory_delta, mover):
"""Perform tree operations that insert directory/inventory names.
That is, create any files that need to be created, and restore from
@@ -1264,10 +1265,6 @@
for num, (path, trans_id) in enumerate(new_paths):
new_entry = None
child_pb.update('adding file', num, len(new_paths))
- try:
- kind = self._new_contents[trans_id]
- except KeyError:
- kind = contents = None
if trans_id in self._new_contents or \
self.path_changed(trans_id):
full_path = self._tree.abspath(path)
@@ -1283,13 +1280,17 @@
if trans_id in self._new_contents:
modified_paths.append(full_path)
completed_new.append(trans_id)
-
- if trans_id in self._new_id:
- if kind is None:
- kind = file_kind(self._tree.abspath(path))
+ file_id = self.final_file_id(trans_id)
+ if file_id is not None and (trans_id in self._new_id or
+ trans_id in self._new_name or trans_id in self._new_parent
+ or trans_id in self._new_executability):
+ try:
+ kind = self.final_kind(trans_id)
+ except NoSuchFile:
+ kind = self._tree.stored_kind(file_id)
if trans_id in self._new_reference_revision:
new_entry = inventory.TreeReference(
- self._new_id[trans_id],
+ self.final_file_id(trans_id),
self._new_name[trans_id],
self.final_file_id(self._new_parent[trans_id]),
None, self._new_reference_revision[trans_id])
@@ -1297,34 +1298,16 @@
new_entry = inventory.make_entry(kind,
self.final_name(trans_id),
self.final_file_id(self.final_parent(trans_id)),
- self._new_id[trans_id])
- else:
- if trans_id in self._new_name or trans_id in\
- self._new_parent or\
- trans_id in self._new_executability:
- file_id = self.final_file_id(trans_id)
- if file_id is not None:
- entry = inv[file_id]
- new_entry = entry.copy()
-
- if trans_id in self._new_name or trans_id in\
- self._new_parent:
- if new_entry is not None:
- new_entry.name = self.final_name(trans_id)
- parent = self.final_parent(trans_id)
- parent_id = self.final_file_id(parent)
- new_entry.parent_id = parent_id
+ self.final_file_id(trans_id))
+ try:
+ old_path = self._tree.id2path(new_entry.file_id)
+ except errors.NoSuchId:
+ old_path = None
+ inventory_delta.append((old_path, path, new_entry.file_id,
+ new_entry))
if trans_id in self._new_executability:
self._set_executability(path, new_entry, trans_id)
- if new_entry is not None:
- if new_entry.file_id in inv:
- old_path = inv.id2path(new_entry.file_id)
- else:
- old_path = None
- inventory_delta.append((old_path, path,
- new_entry.file_id,
- new_entry))
finally:
child_pb.finished()
for trans_id in completed_new:
@@ -1520,8 +1503,9 @@
def _build_tree(tree, wt, accelerator_tree, hardlink):
"""See build_tree."""
- if len(wt.inventory) > 1: # more than just a root
- raise errors.WorkingTreeAlreadyPopulated(base=wt.basedir)
+ for num, _unused in enumerate(wt.all_file_ids()):
+ if num > 0: # more than just a root
+ raise errors.WorkingTreeAlreadyPopulated(base=wt.basedir)
file_trans_id = {}
top_pb = bzrlib.ui.ui_factory.nested_progress_bar()
pp = ProgressPhase("Build phase", 2, top_pb)
@@ -2056,7 +2040,8 @@
new_parent_id = tt.new_directory(parent_name + '.new',
parent_parent, parent_file_id)
_reparent_transform_children(tt, parent_id, new_parent_id)
- tt.unversion_file(parent_id)
+ if parent_file_id is not None:
+ tt.unversion_file(parent_id)
new_conflicts.add((c_type, 'Created directory', new_parent_id))
return new_conflicts
=== modified file 'bzrlib/tree.py'
--- a/bzrlib/tree.py 2007-12-28 20:10:14 +0000
+++ b/bzrlib/tree.py 2008-02-28 00:36:28 +0000
@@ -145,6 +145,10 @@
def __iter__(self):
return iter(self.inventory)
+ def all_file_ids(self):
+ """Iterate through all file ids, including ids for missing files."""
+ return set(self.inventory)
+
def id2path(self, file_id):
"""Return the path for a file id.
@@ -185,6 +189,14 @@
raise NotImplementedError("Tree subclass %s must implement kind"
% self.__class__.__name__)
+ def stored_kind(self, file_id):
+ """File kind stored for this file_id.
+
+ May not match kind on disk for working trees. Always available
+ for versioned files, even when the file itself is missing.
+ """
+ return self.kind(file_id)
+
def path_content_summary(self, path):
"""Get a summary of the information about path.
=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py 2008-02-24 16:42:13 +0000
+++ b/bzrlib/workingtree.py 2008-02-28 01:33:35 +0000
@@ -389,6 +389,10 @@
if osutils.lexists(self.abspath(path)):
yield ie.file_id
+ def all_file_ids(self):
+ """See Tree.iter_all_file_ids"""
+ return set(self.inventory)
+
def __repr__(self):
return "<%s of %s>" % (self.__class__.__name__,
getattr(self, 'basedir', None))
@@ -1698,6 +1702,10 @@
def kind(self, file_id):
return file_kind(self.id2abspath(file_id))
+ def stored_kind(self, file_id):
+ """See Tree.stored_kind"""
+ return self.inventory[file_id].kind
+
def _comparison_data(self, entry, path):
abspath = self.abspath(path)
try:
=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py 2008-02-24 17:19:56 +0000
+++ b/bzrlib/workingtree_4.py 2008-02-28 01:33:35 +0000
@@ -500,6 +500,16 @@
mode = os.lstat(self.abspath(path)).st_mode
return bool(stat.S_ISREG(mode) and stat.S_IEXEC & mode)
+ def all_file_ids(self):
+ """See Tree.iter_all_file_ids"""
+ self._must_be_locked()
+ result = set()
+ for key, tree_details in self.current_dirstate()._iter_entries():
+ if tree_details[0][0] in ('a', 'r'): # relocated
+ continue
+ result.add(key[2])
+ return result
+
@needs_read_lock
def __iter__(self):
"""Iterate through file_ids for this tree.
@@ -1215,6 +1225,19 @@
for file_id in file_ids:
self._inventory.remove_recursive_id(file_id)
+ @needs_tree_write_lock
+ def rename_one(self, from_rel, to_rel, after=False):
+ """See WorkingTree.rename_one"""
+ self.flush()
+ WorkingTree.rename_one(self, from_rel, to_rel, after)
+
+ @needs_tree_write_lock
+ def apply_inventory_delta(self, changes):
+ """See MutableTree.apply_inventory_delta"""
+ state = self.current_dirstate()
+ state.update_by_delta(changes)
+ self._make_dirty(reset_inventory=True)
+
def update_basis_by_delta(self, new_revid, delta):
"""See MutableTree.update_basis_by_delta."""
assert self.last_revision() != new_revid
@@ -1607,6 +1630,10 @@
raise errors.NoSuchId(tree=self, file_id=file_id)
return dirstate.DirState._minikind_to_kind[entry[1][0]]
+ def stored_kind(self, file_id):
+ """See Tree.stored_kind"""
+ return self.kind(file_id)
+
def path_content_summary(self, path):
"""See Tree.path_content_summary."""
id = self.inventory.path2id(path)
More information about the bazaar-commits
mailing list