Rev 4451: (igc) add recursion control to list_files() API in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Jun 17 05:55:42 BST 2009
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 4451
revision-id: pqm at pqm.ubuntu.com-20090617045538-5mmdqd346tv8q67m
parent: pqm at pqm.ubuntu.com-20090617035852-25gobfbjcvs141zw
parent: ian.clatworthy at canonical.com-20090617034525-wukqfq6gx2x45br2
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2009-06-17 05:55:38 +0100
message:
(igc) add recursion control to list_files() API
modified:
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/tree_implementations/test_list_files.py test_list_files.py-20070216005501-cjh6fzprbe9lbs2t-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 4449.1.1
revision-id: ian.clatworthy at canonical.com-20090617034525-wukqfq6gx2x45br2
parent: pqm at pqm.ubuntu.com-20090616193232-rorncr6v3z633n9u
parent: ian.clatworthy at canonical.com-20090617034133-ntlxo6ud53krh61l
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: integration
timestamp: Wed 2009-06-17 13:45:25 +1000
message:
(igc) add recursion control to list_files() API
modified:
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/tree_implementations/test_list_files.py test_list_files.py-20070216005501-cjh6fzprbe9lbs2t-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 4370.5.4
revision-id: ian.clatworthy at canonical.com-20090617034133-ntlxo6ud53krh61l
parent: ian.clatworthy at canonical.com-20090518074317-0h7wcsfbaz91t4n2
parent: pqm at pqm.ubuntu.com-20090616193232-rorncr6v3z633n9u
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: list-files-norecurse
timestamp: Wed 2009-06-17 13:41:33 +1000
message:
merge bzr.dev r4449
removed:
bzrlib/util/tests/test_bencode.py test_bencode.py-20070713042202-qjw8rppxaz7ky6i6-1
doc/developers/performance-contributing.txt performancecontribut-20070621063612-ac4zhhagjzkr21qp-1
added:
bzrlib/_bencode_pyx.h _bencode_pyx.h-20090604155331-53bg7d0udmrvz44n-1
bzrlib/_bencode_pyx.pyx bencode.pyx-20070806220735-j75g4ebfnado2i60-3
bzrlib/_known_graph_py.py _known_graph_py.py-20090610185421-vw8vfda2cgnckgb1-1
bzrlib/_known_graph_pyx.pyx _known_graph_pyx.pyx-20090610194911-yjk73td9hpjilas0-1
bzrlib/benchmarks/bench_tags.py bench_tags.py-20070812104202-0q5i0mqkt72hubof-1
bzrlib/bencode.py bencode.py-20070806220735-j75g4ebfnado2i60-2
bzrlib/help_topics/en/diverged-branches.txt divergedbranches.txt-20090608035534-mb4ry8so4hw238n0-1
bzrlib/send.py send.py-20090521192735-j7cdb33ykmtmzx4w-1
bzrlib/tests/per_repository_reference/test_fetch.py test_fetch.py-20090511214909-25pkgmoam913lrji-1
bzrlib/tests/per_repository_reference/test_get_rev_id_for_revno.py test_get_rev_id_for_-20090615064050-b6mq6co557towrxh-1
bzrlib/tests/per_repository_reference/test_initialize.py test_initialize.py-20090527083941-4rz2urcthjet5e2i-1
bzrlib/tests/per_repository_reference/test_unlock.py test_unlock.py-20090526160031-14lvypj5pbrndnyz-1
bzrlib/tests/test__known_graph.py test__known_graph.py-20090610185421-vw8vfda2cgnckgb1-2
bzrlib/tests/test_bencode.py test_bencode.py-20070806225234-s51cnnkh6raytxti-1
bzrlib/tests/test_chk_serializer.py test_chk_serializer.-20090515105921-urte9wnhknlj5dyp-1
bzrlib/util/bencode.py bencode.py-20090609141817-jtvhqq6vyryjoeky-1
doc/developers/bug-handling.txt bughandling.txt-20090615072247-mplym00zjq2n4s61-1
doc/index.ru.txt index.ru.txt-20080819091426-kfq61l02dhm9pplk-1
doc/ru/ ru-20080818031309-t3nyctvfbvfh4h2u-1
doc/ru/mini-tutorial/ minitutorial-20080818031309-t3nyctvfbvfh4h2u-2
doc/ru/mini-tutorial/index.txt index.txt-20080818031309-t3nyctvfbvfh4h2u-4
doc/ru/quick-reference/ quickreference-20080818031309-t3nyctvfbvfh4h2u-3
doc/ru/quick-reference/Makefile makefile-20080818031309-t3nyctvfbvfh4h2u-5
doc/ru/quick-reference/quick-start-summary.pdf quickstartsummary.pd-20080818031309-t3nyctvfbvfh4h2u-6
doc/ru/quick-reference/quick-start-summary.png quickstartsummary.pn-20080818031309-t3nyctvfbvfh4h2u-7
doc/ru/quick-reference/quick-start-summary.svg quickstartsummary.sv-20080818031309-t3nyctvfbvfh4h2u-8
doc/ru/tutorials/ docrututorials-20090427084615-toum0jo7qohd807p-1
doc/ru/tutorials/centralized_workflow.txt centralized_workflow-20090531190825-ex3ums4bcuaf2r6k-1
doc/ru/tutorials/tutorial.txt tutorial.txt-20090602180629-wkp7wr27jl4i2zep-1
doc/ru/tutorials/using_bazaar_with_launchpad.txt using_bazaar_with_la-20090427084917-b22ppqtdx7q4hapw-1
doc/ru/user-guide/ docruuserguide-20090601191403-rcoy6nsre0vjiozm-1
doc/ru/user-guide/branching_a_project.txt branching_a_project.-20090602104644-pjpwfx7xh2k5l0ba-1
doc/ru/user-guide/core_concepts.txt core_concepts.txt-20090602104644-pjpwfx7xh2k5l0ba-2
doc/ru/user-guide/images/ images-20090601201124-cruf3mmq5cfxeb1w-1
doc/ru/user-guide/images/workflows_centralized.png workflows_centralize-20090601201124-cruf3mmq5cfxeb1w-3
doc/ru/user-guide/images/workflows_centralized.svg workflows_centralize-20090601201124-cruf3mmq5cfxeb1w-4
doc/ru/user-guide/images/workflows_gatekeeper.png workflows_gatekeeper-20090601201124-cruf3mmq5cfxeb1w-5
doc/ru/user-guide/images/workflows_gatekeeper.svg workflows_gatekeeper-20090601201124-cruf3mmq5cfxeb1w-6
doc/ru/user-guide/images/workflows_localcommit.png workflows_localcommi-20090601201124-cruf3mmq5cfxeb1w-7
doc/ru/user-guide/images/workflows_localcommit.svg workflows_localcommi-20090601201124-cruf3mmq5cfxeb1w-8
doc/ru/user-guide/images/workflows_peer.png workflows_peer.png-20090601201124-cruf3mmq5cfxeb1w-9
doc/ru/user-guide/images/workflows_peer.svg workflows_peer.svg-20090601201124-cruf3mmq5cfxeb1w-10
doc/ru/user-guide/images/workflows_pqm.png workflows_pqm.png-20090601201124-cruf3mmq5cfxeb1w-11
doc/ru/user-guide/images/workflows_pqm.svg workflows_pqm.svg-20090601201124-cruf3mmq5cfxeb1w-12
doc/ru/user-guide/images/workflows_shared.png workflows_shared.png-20090601201124-cruf3mmq5cfxeb1w-13
doc/ru/user-guide/images/workflows_shared.svg workflows_shared.svg-20090601201124-cruf3mmq5cfxeb1w-14
doc/ru/user-guide/images/workflows_single.png workflows_single.png-20090601201124-cruf3mmq5cfxeb1w-15
doc/ru/user-guide/images/workflows_single.svg workflows_single.svg-20090601201124-cruf3mmq5cfxeb1w-16
doc/ru/user-guide/index.txt index.txt-20090601201124-cruf3mmq5cfxeb1w-2
doc/ru/user-guide/introducing_bazaar.txt introducing_bazaar.t-20090601221109-6ehwbt2pvzgpftlu-1
doc/ru/user-guide/specifying_revisions.txt specifying_revisions-20090602104644-pjpwfx7xh2k5l0ba-3
doc/ru/user-guide/stacked.txt stacked.txt-20090602104644-pjpwfx7xh2k5l0ba-4
doc/ru/user-guide/using_checkouts.txt using_checkouts.txt-20090602104644-pjpwfx7xh2k5l0ba-5
doc/ru/user-guide/zen.txt zen.txt-20090602104644-pjpwfx7xh2k5l0ba-6
tools/time_graph.py time_graph.py-20090608210127-6g0epojxnqjo0f0s-1
renamed:
bzrlib/tests/workingtree_implementations/test_get_file_with_stat.py => bzrlib/tests/tree_implementations/test_get_file_with_stat.py test_get_file_with_s-20080922035909-lhdovrr36jpxmu0v-1
bzrlib/util/bencode.py => bzrlib/util/_bencode_py.py bencode.py-20070220044742-sltr28q21w2wzlxi-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/_dirstate_helpers_c.pyx dirstate_helpers.pyx-20070503201057-u425eni465q4idwn-3
bzrlib/_groupcompress_pyx.pyx _groupcompress_c.pyx-20080724041824-yelg6ii7c7zxt4z0-1
bzrlib/benchmarks/__init__.py __init__.py-20060516064526-eb0d37c78e86065d
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
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/cache_utf8.py cache_utf8.py-20060810004311-x4cph46la06h9azm-1
bzrlib/chk_map.py chk_map.py-20081001014447-ue6kkuhofvdecvxa-1
bzrlib/chk_serializer.py chk_serializer.py-20081002064345-2tofdfj2eqq01h4b-1
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/filters/__init__.py __init__.py-20080416080515-mkxl29amuwrf6uir-2
bzrlib/foreign.py foreign.py-20081112170002-olsxmandkk8qyfuq-1
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/groupcompress.py groupcompress.py-20080705181503-ccbxd6xuy1bdnrpu-8
bzrlib/help.py help.py-20050505025907-4dd7a6d63912f894
bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
bzrlib/help_topics/en/eol.txt eol.txt-20090327060429-todzdjmqt3bpv5r8-3
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lock.py lock.py-20050527050856-ec090bb51bc03349
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/mail_client.py mail_client.py-20070809192806-vuxt3t19srtpjpdn-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/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
bzrlib/progress.py progress.py-20050610070202-df9faaab791964c0
bzrlib/push.py push.py-20080606021927-5fe39050e8xne9un-1
bzrlib/python-compat.h pythoncompat.h-20080924041409-9kvi0fgtuuqp743j-1
bzrlib/reconcile.py reweave_inventory.py-20051108164726-1e5e0934febac06e
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/groupcompress_repo.py repofmt.py-20080715094215-wp1qfvoo7093c8qr-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/serializer.py serializer.py-20090402143702-wmkh9cfjhwpju0qi-1
bzrlib/shelf.py prepare_shelf.py-20081005181341-n74qe6gu1e65ad4v-1
bzrlib/shellcomplete.py shellcomplete.py-20050822153127-3be115ff5e70fc39
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/smart/server.py server.py-20061110062051-chzu10y32vx8gvur-1
bzrlib/tag.py tag.py-20070212110532-91cw79inah2cfozx-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_dpush.py test_dpush.py-20090108125928-st1td6le59g0vyv2-1
bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
bzrlib/tests/blackbox/test_init.py test_init.py-20060309032856-a292116204d86eb7
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
bzrlib/tests/blackbox/test_serve.py test_serve.py-20060913064329-8t2pvmsikl4s3xhl-1
bzrlib/tests/blackbox/test_split.py test_split.py-20061008023421-qy0vdpzysh5rriu8-1
bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_check.py test_check.py-20080429151303-1sbfclxhddpz0tnj-1
bzrlib/tests/branch_implementations/test_dotted_revno_to_revision_id.py test_dotted_revno_to-20090121014844-6x7d9jtri5sspg1o-1
bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
bzrlib/tests/branch_implementations/test_reconcile.py test_reconcile.py-20080429161555-qlmccuyeyt6pvho7-1
bzrlib/tests/branch_implementations/test_sprout.py test_sprout.py-20070521151739-b8t8p7axw1h966ws-1
bzrlib/tests/branch_implementations/test_stacking.py test_stacking.py-20080214020755-msjlkb7urobwly0f-1
bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/per_repository/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/per_repository/test_fileid_involved.py test_file_involved.py-20051215205901-728a172d1014daaa
bzrlib/tests/per_repository/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
bzrlib/tests/per_repository/test_reconcile.py test_reconcile.py-20060223022332-572ef70a3288e369
bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/per_repository/test_revision.py testrevprops.py-20051013073044-92bc3c68302ce1bf
bzrlib/tests/per_repository/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
bzrlib/tests/per_repository_reference/__init__.py __init__.py-20080220025549-nnm2s80it1lvcwnc-2
bzrlib/tests/per_repository_reference/test_default_stacking.py test_default_stackin-20090311055345-9ajahgm58oq3wh6h-1
bzrlib/tests/test__groupcompress.py test__groupcompress_-20080724145854-koifwb7749cfzrvj-1
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_chk_map.py test_chk_map.py-20081001014447-ue6kkuhofvdecvxa-2
bzrlib/tests/test_commands.py test_command.py-20051019190109-3b17be0f52eaa7a8
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_eol_filters.py test_eol_filters.py-20090327060429-todzdjmqt3bpv5r8-2
bzrlib/tests/test_filters.py test_filters.py-20080417120614-tc3zok0vvvprsc99-1
bzrlib/tests/test_foreign.py test_foreign.py-20081125004048-ywb901edgp9lluxo-1
bzrlib/tests/test_generate_docs.py test_generate_docs.p-20070102123151-cqctnsrlqwmiljd7-1
bzrlib/tests/test_graph.py test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
bzrlib/tests/test_groupcompress.py test_groupcompress.p-20080705181503-ccbxd6xuy1bdnrpu-13
bzrlib/tests/test_help.py test_help.py-20070419045354-6q6rq15j9e2n5fna-1
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
bzrlib/tests/test_options.py testoptions.py-20051014093702-96457cfc86319a8f
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
bzrlib/tests/test_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_serializer.py test_serializer.py-20090403213933-q6x117y8t9fbeyoz-1
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_source.py test_source.py-20051207061333-a58dea6abecc030d
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_ui.py test_ui.py-20051130162854-458e667a7414af09
bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
bzrlib/tests/workingtree_implementations/__init__.py __init__.py-20060203003124-b2aa5aca21a8bfad
bzrlib/tests/workingtree_implementations/test_content_filters.py test_content_filters-20080424071441-8navsrmrfdxpn90a-1
bzrlib/tests/workingtree_implementations/test_eol_conversion.py test_eol_conversion.-20090327060429-todzdjmqt3bpv5r8-4
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/ui/__init__.py ui.py-20050824083933-8cf663c763ba53a9
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
bzrlib/xml4.py xml4.py-20050916091259-db5ab55e7e6ca324
bzrlib/xml8.py xml5.py-20050907032657-aac8f960815b66b1
bzrlib/xml_serializer.py xml.py-20050309040759-57d51586fdec365d
doc/developers/cycle.txt cycle.txt-20081017031739-rw24r0cywm2ok3xu-1
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/performance-roadmap.txt performanceroadmap.t-20070507174912-mwv3xv517cs4sisd-2
doc/developers/planned-change-integration.txt plannedchangeintegra-20070619004702-i1b3ccamjtfaoq6w-1
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
doc/en/developer-guide/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
doc/en/quick-reference/Makefile makefile-20070813143223-5i7bgw7w8s7l3ae2-2
doc/en/quick-reference/quick-start-summary.png quickstartsummary.pn-20071203142852-hsiybkmh37q5owwe-1
doc/en/tutorials/using_bazaar_with_launchpad.txt using_bazaar_with_lp-20071211073140-7msh8uf9a9h4y9hb-1
doc/en/user-guide/images/workflows_centralized.png workflows_centralize-20071114035000-q36a9h57ps06uvnl-8
doc/en/user-guide/images/workflows_gatekeeper.png workflows_gatekeeper-20071114035000-q36a9h57ps06uvnl-9
doc/en/user-guide/images/workflows_localcommit.png workflows_localcommi-20071114035000-q36a9h57ps06uvnl-10
doc/en/user-guide/images/workflows_peer.png workflows_peer.png-20071114035000-q36a9h57ps06uvnl-11
doc/en/user-guide/images/workflows_pqm.png workflows_pqm.png-20071114035000-q36a9h57ps06uvnl-12
doc/en/user-guide/images/workflows_shared.png workflows_shared.png-20071114035000-q36a9h57ps06uvnl-13
doc/en/user-guide/images/workflows_single.png workflows_single.png-20071114035000-q36a9h57ps06uvnl-14
doc/en/user-guide/introducing_bazaar.txt introducing_bazaar.t-20071114035000-q36a9h57ps06uvnl-5
doc/en/user-guide/svn_plugin.txt svn_plugin.txt-20080509065016-cjc90f46407vi9a0-2
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
generate_docs.py bzrinfogen.py-20051211224525-78e7c14f2c955e55
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
bzrlib/tests/tree_implementations/test_get_file_with_stat.py test_get_file_with_s-20080922035909-lhdovrr36jpxmu0v-1
bzrlib/util/_bencode_py.py bencode.py-20070220044742-sltr28q21w2wzlxi-1
------------------------------------------------------------
revno: 4370.5.3
revision-id: ian.clatworthy at canonical.com-20090518074317-0h7wcsfbaz91t4n2
parent: ian.clatworthy at canonical.com-20090518063208-58c4zu7az532e2jt
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: list-files-norecurse
timestamp: Mon 2009-05-18 17:43:17 +1000
message:
handle unversioned directories
modified:
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
------------------------------------------------------------
revno: 4370.5.2
revision-id: ian.clatworthy at canonical.com-20090518063208-58c4zu7az532e2jt
parent: ian.clatworthy at canonical.com-20090518031238-vhtj20agsx2ygiu2
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: list-files-norecurse
timestamp: Mon 2009-05-18 16:32:08 +1000
message:
extend list_files() with from_dir and recursive parameters
modified:
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/tests/tree_implementations/test_list_files.py test_list_files.py-20070216005501-cjh6fzprbe9lbs2t-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
=== modified file 'bzrlib/revisiontree.py'
--- a/bzrlib/revisiontree.py 2009-06-10 03:56:49 +0000
+++ b/bzrlib/revisiontree.py 2009-06-17 03:41:33 +0000
@@ -114,11 +114,18 @@
def has_filename(self, filename):
return bool(self.inventory.path2id(filename))
- def list_files(self, include_root=False):
+ def list_files(self, include_root=False, from_dir=None, recursive=True):
# The only files returned by this are those from the version
- entries = self.inventory.iter_entries()
- # skip the root for compatability with the current apis.
- if self.inventory.root is not None and not include_root:
+ inv = self.inventory
+ if from_dir is None:
+ from_dir_id = None
+ else:
+ from_dir_id = inv.path2id(from_dir)
+ if from_dir_id is None:
+ # Directory not versioned
+ return
+ entries = inv.iter_entries(from_dir=from_dir_id, recursive=recursive)
+ if inv.root is not None and not include_root and from_dir is None:
# skip the root for compatability with the current apis.
entries.next()
for path, entry in entries:
=== modified file 'bzrlib/tests/tree_implementations/test_list_files.py'
--- a/bzrlib/tests/tree_implementations/test_list_files.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_list_files.py 2009-05-18 06:32:08 +0000
@@ -49,7 +49,68 @@
try:
actual = [(path, status, kind, file_id)
for path, status, kind, file_id, ie in
- tree.list_files(include_root=False)]
+ tree.list_files()]
+ finally:
+ tree.unlock()
+ self.assertEqual(expected, actual)
+
+ def test_list_files_with_root_no_recurse(self):
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ expected = [('', 'V', 'directory', 'root-id'),
+ ('a', 'V', 'file', 'a-id'),
+ ('b', 'V', 'directory', 'b-id'),
+ ]
+ tree.lock_read()
+ try:
+ actual = [(path, status, kind, file_id)
+ for path, status, kind, file_id, ie in
+ tree.list_files(include_root=True, recursive=False)]
+ finally:
+ tree.unlock()
+ self.assertEqual(expected, actual)
+
+ def test_list_files_no_root_no_recurse(self):
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ expected = [('a', 'V', 'file', 'a-id'),
+ ('b', 'V', 'directory', 'b-id'),
+ ]
+ tree.lock_read()
+ try:
+ actual = [(path, status, kind, file_id)
+ for path, status, kind, file_id, ie in
+ tree.list_files(recursive=False)]
+ finally:
+ tree.unlock()
+ self.assertEqual(expected, actual)
+
+ def test_list_files_from_dir(self):
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ expected = [('c', 'V', 'file', 'c-id'),
+ ]
+ tree.lock_read()
+ try:
+ actual = [(path, status, kind, file_id)
+ for path, status, kind, file_id, ie in
+ tree.list_files(from_dir='b')]
+ finally:
+ tree.unlock()
+ self.assertEqual(expected, actual)
+
+ def test_list_files_from_dir_no_recurse(self):
+ # The test trees don't have much nesting so test with an explicit root
+ work_tree = self.make_branch_and_tree('wt')
+ tree = self.get_tree_no_parents_abc_content(work_tree)
+ expected = [('a', 'V', 'file', 'a-id'),
+ ('b', 'V', 'directory', 'b-id'),
+ ]
+ tree.lock_read()
+ try:
+ actual = [(path, status, kind, file_id)
+ for path, status, kind, file_id, ie in
+ tree.list_files(from_dir='', recursive=False)]
finally:
tree.unlock()
self.assertEqual(expected, actual)
=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py 2009-06-10 03:56:49 +0000
+++ b/bzrlib/transform.py 2009-06-17 03:41:33 +0000
@@ -1748,7 +1748,7 @@
if self._transform.final_file_id(trans_id) is None:
yield self._final_paths._determine_path(trans_id)
- def _make_inv_entries(self, ordered_entries, specific_file_ids):
+ def _make_inv_entries(self, ordered_entries, specific_file_ids=None):
for trans_id, parent_file_id in ordered_entries:
file_id = self._transform.final_file_id(trans_id)
if file_id is None:
@@ -1791,14 +1791,41 @@
specific_file_ids):
yield unicode(self._final_paths.get_path(trans_id)), entry
- def list_files(self, include_root=False):
- """See Tree.list_files."""
+ def _iter_entries_for_dir(self, dir_path):
+ """Return path, entry for items in a directory without recursing down."""
+ dir_file_id = self.path2id(dir_path)
+ ordered_ids = []
+ for file_id in self.iter_children(dir_file_id):
+ trans_id = self._transform.trans_id_file_id(file_id)
+ ordered_ids.append((trans_id, file_id))
+ for entry, trans_id in self._make_inv_entries(ordered_ids):
+ yield unicode(self._final_paths.get_path(trans_id)), entry
+
+ def list_files(self, include_root=False, from_dir=None, recursive=True):
+ """See WorkingTree.list_files."""
# XXX This should behave like WorkingTree.list_files, but is really
# more like RevisionTree.list_files.
- for path, entry in self.iter_entries_by_dir():
- if entry.name == '' and not include_root:
- continue
- yield path, 'V', entry.kind, entry.file_id, entry
+ if recursive:
+ prefix = None
+ if from_dir:
+ prefix = from_dir + '/'
+ entries = self.iter_entries_by_dir()
+ for path, entry in entries:
+ if entry.name == '' and not include_root:
+ continue
+ if prefix:
+ if not path.startswith(prefix):
+ continue
+ path = path[len(prefix):]
+ yield path, 'V', entry.kind, entry.file_id, entry
+ else:
+ if from_dir is None and include_root is True:
+ root_entry = inventory.make_entry('directory', '',
+ ROOT_PARENT, self.get_root_id())
+ yield '', 'V', 'directory', root_entry.file_id, root_entry
+ entries = self._iter_entries_for_dir(from_dir or '')
+ for path, entry in entries:
+ yield path, 'V', entry.kind, entry.file_id, entry
def kind(self, file_id):
trans_id = self._transform.trans_id_file_id(file_id)
=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py 2009-06-15 15:47:45 +0000
+++ b/bzrlib/workingtree.py 2009-06-17 03:41:33 +0000
@@ -1115,15 +1115,16 @@
def _kind(self, relpath):
return osutils.file_kind(self.abspath(relpath))
- def list_files(self, include_root=False):
- """Recursively list all files as (path, class, kind, id, entry).
+ def list_files(self, include_root=False, from_dir=None, recursive=True):
+ """List all files as (path, class, kind, id, entry).
Lists, but does not descend into unversioned directories.
-
This does not include files that have been deleted in this
- tree.
+ tree. Skips the control directory.
- Skips the control directory.
+ :param include_root: if True, do not return an entry for the root
+ :param from_dir: start from this directory or None for the root
+ :param recursive: whether to recurse into subdirectories or not
"""
# list_files is an iterator, so @needs_read_lock doesn't work properly
# with it. So callers should be careful to always read_lock the tree.
@@ -1131,7 +1132,7 @@
raise errors.ObjectNotLocked(self)
inv = self.inventory
- if include_root is True:
+ if from_dir is None and include_root is True:
yield ('', 'V', 'directory', inv.root.file_id, inv.root)
# Convert these into local objects to save lookup times
pathjoin = osutils.pathjoin
@@ -1144,13 +1145,22 @@
fk_entries = {'directory':TreeDirectory, 'file':TreeFile, 'symlink':TreeLink}
# directory file_id, relative path, absolute path, reverse sorted children
- children = os.listdir(self.basedir)
+ if from_dir is not None:
+ from_dir_id = inv.path2id(from_dir)
+ if from_dir_id is None:
+ # Directory not versioned
+ return
+ from_dir_abspath = pathjoin(self.basedir, from_dir)
+ else:
+ from_dir_id = inv.root.file_id
+ from_dir_abspath = self.basedir
+ children = os.listdir(from_dir_abspath)
children.sort()
# jam 20060527 The kernel sized tree seems equivalent whether we
# use a deque and popleft to keep them sorted, or if we use a plain
# list and just reverse() them.
children = collections.deque(children)
- stack = [(inv.root.file_id, u'', self.basedir, children)]
+ stack = [(from_dir_id, u'', from_dir_abspath, children)]
while stack:
from_dir_id, from_dir_relpath, from_dir_abspath, children = stack[-1]
@@ -1214,14 +1224,15 @@
if fk != 'directory':
continue
- # But do this child first
- new_children = os.listdir(fap)
- new_children.sort()
- new_children = collections.deque(new_children)
- stack.append((f_ie.file_id, fp, fap, new_children))
- # Break out of inner loop,
- # so that we start outer loop with child
- break
+ # But do this child first if recursing down
+ if recursive:
+ new_children = os.listdir(fap)
+ new_children.sort()
+ new_children = collections.deque(new_children)
+ stack.append((f_ie.file_id, fp, fap, new_children))
+ # Break out of inner loop,
+ # so that we start outer loop with child
+ break
else:
# if we finished all children, pop it off the stack
stack.pop()
=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py 2009-06-11 04:23:53 +0000
+++ b/bzrlib/workingtree_4.py 2009-06-17 03:41:33 +0000
@@ -1844,12 +1844,19 @@
return None
return ie.executable
- def list_files(self, include_root=False):
+ def list_files(self, include_root=False, from_dir=None, recursive=True):
# We use a standard implementation, because DirStateRevisionTree is
# dealing with one of the parents of the current state
inv = self._get_inventory()
- entries = inv.iter_entries()
- if self.inventory.root is not None and not include_root:
+ if from_dir is None:
+ from_dir_id = None
+ else:
+ from_dir_id = inv.path2id(from_dir)
+ if from_dir_id is None:
+ # Directory not versioned
+ return
+ entries = inv.iter_entries(from_dir=from_dir_id, recursive=recursive)
+ if inv.root is not None and not include_root and from_dir is None:
entries.next()
for path, entry in entries:
yield path, 'V', entry.kind, entry.file_id, entry
More information about the bazaar-commits
mailing list