Rev 3726: PreviewTree now passes intertree_implmentations tests in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Sep 23 06:15:28 BST 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3726
revision-id: pqm at pqm.ubuntu.com-20080923051523-7ghbp6v2i2dehplc
parent: pqm at pqm.ubuntu.com-20080923035200-4k29gtzxfev8l3a0
parent: aaron at aaronbentley.com-20080923044449-b9gf8xr2n02xtdlh
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-09-23 06:15:23 +0100
message:
  PreviewTree now passes intertree_implmentations tests
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/tests/intertree_implementations/__init__.py __init__.py-20060724101752-09ysswo1a92uqyoz-3
  bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
  bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
  bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
  bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
  bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
    ------------------------------------------------------------
    revno: 3363.14.15
    revision-id: aaron at aaronbentley.com-20080923044449-b9gf8xr2n02xtdlh
    parent: aaron at aaronbentley.com-20080922180949-ys9345vtt2n7f4xm
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Tue 2008-09-23 00:44:49 -0400
    message:
      Add NEWS entry
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3363.14.14
    revision-id: aaron at aaronbentley.com-20080922180949-ys9345vtt2n7f4xm
    parent: aaron at aaronbentley.com-20080922180512-oylmjg5ivjsikvy5
    parent: pqm at pqm.ubuntu.com-20080922180718-n946121e40ql2bb3
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Mon 2008-09-22 14:09:49 -0400
    message:
      Merge with bzr.dev
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
      bzrlib/smart/client.py         client.py-20061116014825-2k6ada6xgulslami-1
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
      bzrlib/tests/blackbox/test_remove_tree.py test_remove_tree.py-20061110192919-5j3xjciiaqbs2dvo-1
      bzrlib/tests/blackbox/test_switch.py test_switch.py-20071122111948-0c5en6uz92bwl76h-1
      bzrlib/tests/branch_implementations/test_break_lock.py test_break_lock.py-20060504111902-9aae411dbe9aadd2
      bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
      bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
      bzrlib/tests/workingtree_implementations/test_remove.py test_remove.py-20070413183901-rvnp85rtc0q0sclp-1
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
    ------------------------------------------------------------
    revno: 3363.14.13
    revision-id: aaron at aaronbentley.com-20080922180512-oylmjg5ivjsikvy5
    parent: aaron at aaronbentley.com-20080920172039-z2w3nwh20r1tw17p
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Mon 2008-09-22 14:05:12 -0400
    message:
      Remove wrong_tree_value_error test.
    modified:
      bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
    ------------------------------------------------------------
    revno: 3363.14.12
    revision-id: aaron at aaronbentley.com-20080920172039-z2w3nwh20r1tw17p
    parent: aaron at aaronbentley.com-20080908205525-vbweuaw2tk1s5c5m
    parent: aaron at aaronbentley.com-20080920172021-md2ew2ccrtntr5ev
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Sat 2008-09-20 13:20:39 -0400
    message:
      Merge with extras
    renamed:
      bzrlib/tests/repository_implementations => bzrlib/tests/per_repository repository_implementations-20060131092037-ec97814745cc6128
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzr                            bzr.py-20050313053754-5485f144c7006fa6
      bzr.ico                        bzr.ico-20060629083000-q18ip0hk7lq55i4y-1
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bundle/__init__.py      changeset.py-20050513021216-b02ab57fb9738913
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/missing.py              missing.py-20050812153334-097f7097e2a8bcd1
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/smart/branch.py         branch.py-20061124031907-mzh3pla28r83r97f-1
      bzrlib/smart/medium.py         medium.py-20061103051856-rgu2huy59fkz902q-1
      bzrlib/smart/message.py        message.py-20080222013625-ncqmh3nrxjkxab87-1
      bzrlib/smart/protocol.py       protocol.py-20061108035435-ot0lstk2590yqhzr-1
      bzrlib/smart/request.py        request.py-20061108095550-gunadhxmzkdjfeek-1
      bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
      bzrlib/tests/blackbox/test_init.py test_init.py-20060309032856-a292116204d86eb7
      bzrlib/tests/per_repository/__init__.py __init__.py-20060131092037-9564957a7d4a841b
      bzrlib/tests/per_repository/helpers.py helpers.py-20070924032407-m460yl9j5gu5ju85-2
      bzrlib/tests/per_repository/test__generate_text_key_index.py test__generate_text_-20071114232121-00h9fd8qg8kjfa5k-1
      bzrlib/tests/per_repository/test_add_fallback_repository.py test_add_fallback_re-20080215040003-8w9n4ck9uqdxj18m-1
      bzrlib/tests/per_repository/test_break_lock.py test_break_lock.py-20060504111704-ee09a107f9f42e43
      bzrlib/tests/per_repository/test_check.py test_check.py-20070824124512-38g4d135gcqxo4zb-1
      bzrlib/tests/per_repository/test_check_reconcile.py test_broken.py-20070928125406-62236394w0jpbpd6-2
      bzrlib/tests/per_repository/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
      bzrlib/tests/per_repository/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
      bzrlib/tests/per_repository/test_fileid_involved.py test_file_involved.py-20051215205901-728a172d1014daaa
      bzrlib/tests/per_repository/test_find_text_key_references.py test_find_text_key_r-20071114033605-v73bakal8x77qlfi-1
      bzrlib/tests/per_repository/test_get_parent_map.py test_get_parent_map.-20080421172708-x1z6ot341osr0jq1-1
      bzrlib/tests/per_repository/test_has_revisions.py test_has_revisions.p-20080111035443-xaupgdsx5fw1q54b-1
      bzrlib/tests/per_repository/test_has_same_location.py test_has_same_locati-20070807074648-2i2ah82fbe83iys7-1
      bzrlib/tests/per_repository/test_is_write_locked.py test_is_write_locked-20071012063748-vk062lmu683qgbc3-1
      bzrlib/tests/per_repository/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
      bzrlib/tests/per_repository/test_pack.py test_pack.py-20070712120702-0c7585lh56p894mo-2
      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_statistics.py test_statistics.py-20070203082432-6738e8fl0mm7ikre-1
      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/test_annotate.py  test_annotate.py-20061213215015-sttc9agsxomls7q0-1
      bzrlib/tests/test_bundle.py    test.py-20050630184834-092aa401ab9f039c
      bzrlib/tests/test_missing.py   test_missing.py-20051212000028-694fa4f658a81f48
      bzrlib/tests/test_reconcile.py test_reconcile.py-20060225054842-50aa618584a86f26
      bzrlib/tests/test_remote.py    test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
      bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
      bzrlib/tests/test_smart.py     test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
      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/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
      bzrlib/tests/tree_implementations/test_test_trees.py test_tree_trees.py-20060720091921-3nwi5h21lf06vf5p-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/transport/__init__.py   transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/transport/local.py      local_transport.py-20050711165921-9b1f142bfe480c24
      bzrlib/transport/sftp.py       sftp.py-20051019050329-ab48ce71b7e32dfe
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
      doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
      profile_imports.py             profile_imports.py-20060618020306-k5uw80achysrokj9-1
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
      tools/doc_generate/autodoc_man.py bzrman.py-20050601153041-0ff7f74de456d15e
    ------------------------------------------------------------
    revno: 3363.14.11
    revision-id: aaron at aaronbentley.com-20080908205525-vbweuaw2tk1s5c5m
    parent: aaron at aaronbentley.com-20080908203846-23fcs8612eucybw8
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Mon 2008-09-08 16:55:25 -0400
    message:
      Fix intertree tests with dirstate
    modified:
      bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
    ------------------------------------------------------------
    revno: 3363.14.10
    revision-id: aaron at aaronbentley.com-20080908203846-23fcs8612eucybw8
    parent: aaron at aaronbentley.com-20080731045146-fhfu8aywmwvusmp7
    parent: aaron at aaronbentley.com-20080908203716-f7v4140etr9cdxcl
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Mon 2008-09-08 16:38:46 -0400
    message:
      Merge with extras
    removed:
      tools/win32/survey.txt         survey.txt-20070809075950-sf265mgu9oog8jjb-1
    added:
      bzrlib/_btree_serializer_c.pyx _parse_btree_c.pyx-20080703034413-3q25bklkenti3p8p-2
      bzrlib/_btree_serializer_py.py _parse_btree_py.py-20080703034413-3q25bklkenti3p8p-3
      bzrlib/_readdir_py.py          readdir.py-20060609152855-rm6v321vuaqyh9tu-3
      bzrlib/_readdir_pyx.pyx        readdir.pyx-20060609152855-rm6v321vuaqyh9tu-1
      bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
      bzrlib/chunk_writer.py         chunk_writer.py-20080630234519-6ggn4id17nipovny-1
      bzrlib/readdir.h               readdir.h-20060609152855-rm6v321vuaqyh9tu-2
      bzrlib/tests/test_btree_index.py test_index.py-20080624222253-p0x5f92uyh5hw734-13
      bzrlib/tests/test_chunk_writer.py test_chunk_writer.py-20080630234519-6ggn4id17nipovny-2
      bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
      bzrlib/tests/test_transport_log.py test_transport_log.p-20080902041816-vh8x5yt5nvdzvew3-3
      bzrlib/tests/test_upgrade_stacked.py test_upgrade_stacked-20080804072225-jd13yami19nskns5-1
      bzrlib/transport/ftp/          ftp-20080611185801-3vm145h8dmnfgh25-1
      bzrlib/transport/ftp/_gssapi.py _gssapi.py-20080611190840-7ejrtp884bk5eu72-2
      bzrlib/transport/log.py        log.py-20080902041816-vh8x5yt5nvdzvew3-5
      doc/developers/overview.txt    overview.txt-20080904022501-ww2ggomrs5elxfm0-1
      doc/developers/testing.txt     testing.txt-20080812140359-i70zzh6v2z7grqex-1
      tools/packaging/               packaging-20080825202834-3j433iaawnt72wqa-1
      tools/packaging/build-packages.sh buildpackages.sh-20080821102059-fzlodktas65qmo1k-1
      tools/packaging/update-changelogs.sh updatechangelogs.sh-20080821102059-fzlodktas65qmo1k-2
      tools/packaging/update-packaging-branches.sh updatepackagingbranc-20080825210254-6is8ciit1yzyd3a2-1
    renamed:
      bzrlib/transport/ftp.py => bzrlib/transport/ftp/__init__.py ftp.py-20051116161804-58dc9506548c2a53
    modified:
      .bzrignore                     bzrignore-20050311232317-81f7b71efa2db11a
      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/_dirstate_helpers_py.py _dirstate_helpers_py-20070710145033-90nz6cqglsk150jy-1
      bzrlib/_patiencediff_c.c       _patiencediff_c.c-20070721205602-q3imkipwlgagp3cy-1
      bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
      bzrlib/atomicfile.py           atomicfile.py-20050509044450-dbd24e6c564f7c66
      bzrlib/benchmarks/bench_osutils.py bench_osutils.py-20060608153714-apso8cyz1bu2z1ig-1
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/branchbuilder.py        branchbuilder.py-20070427022007-zlxpqz2lannhk6y8-1
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bundle/bundle_data.py   read_changeset.py-20050619171944-c0d95aa685537640
      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/diff.py                 diff.py-20050309040759-26944fbbf2ebbf36
      bzrlib/dirstate.py             dirstate.py-20060728012006-d6mvoihjb3je9peu-1
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/export/__init__.py      __init__.py-20051114235828-1ba62cb4062304e6
      bzrlib/export/dir_exporter.py  dir_exporter.py-20051114235828-b51397f56bc7b117
      bzrlib/export/tar_exporter.py  tar_exporter.py-20051114235828-1f6349a2f090a5d0
      bzrlib/export/zip_exporter.py  zip_exporter.py-20051114235828-8f57f954fba6497e
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/help_topics/en/rules.txt rules.txt-20080516063844-ghr5l6pvvrhiycun-1
      bzrlib/index.py                index.py-20070712131115-lolkarso50vjr64s-1
      bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/lockdir.py              lockdir.py-20060220222025-98258adf27fbdda3
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/mail_client.py          mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
      bzrlib/memorytree.py           memorytree.py-20060906023413-4wlkalbdpsxi2r4y-1
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/merge_directive.py      merge_directive.py-20070228184838-ja62280spt1g7f4x-1
      bzrlib/missing.py              missing.py-20050812153334-097f7097e2a8bcd1
      bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/plugin.py               plugin.py-20050622060424-829b654519533d69
      bzrlib/push.py                 push.py-20080606021927-5fe39050e8xne9un-1
      bzrlib/reconcile.py            reweave_inventory.py-20051108164726-1e5e0934febac06e
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-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/medium.py         medium.py-20061103051856-rgu2huy59fkz902q-1
      bzrlib/smart/message.py        message.py-20080222013625-ncqmh3nrxjkxab87-1
      bzrlib/smart/protocol.py       protocol.py-20061108035435-ot0lstk2590yqhzr-1
      bzrlib/smart/repository.py     repository.py-20061128022038-vr5wy5bubyb8xttk-1
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
      bzrlib/tests/blackbox/test_cat_revision.py test_cat_revision.py-20070410204634-fq8mnld5l5aza9e2-1
      bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
      bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
      bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
      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_merge.py test_merge.py-20060323225809-9bc0459c19917f41
      bzrlib/tests/blackbox/test_missing.py test_missing.py-20051211212735-a2cf4c1840bb84c4
      bzrlib/tests/blackbox/test_non_ascii.py test_non_ascii.py-20060105214030-68010be784a5d854
      bzrlib/tests/blackbox/test_outside_wt.py test_outside_wt.py-20060116200058-98edd33e7db8bdde
      bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
      bzrlib/tests/blackbox/test_remove.py test_remove.py-20060530011439-fika5rm84lon0goe-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_shared_repository.py test_shared_repository.py-20060317053531-ed30c0d79325e483
      bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
      bzrlib/tests/blackbox/test_uncommit.py test_uncommit.py-20051027212835-84944b63adae51be
      bzrlib/tests/branch_implementations/test_locking.py test_locking.py-20060707151933-tav3o2hpibwi53u4-4
      bzrlib/tests/branch_implementations/test_permissions.py test_permissions.py-20060210110243-245c01403bf0fde6
      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/commands/test_init.py test_init.py-20070514074921-audbcdd8o56dpame-1
      bzrlib/tests/commands/test_init_repository.py test_init_repository-20070525163812-87xw0678ky573l27-1
      bzrlib/tests/http_utils.py     HTTPTestUtil.py-20050914180604-247d3aafb7a43343
      bzrlib/tests/interrepository_implementations/test_fetch.py test_fetch.py-20080425213627-j60cjh782ufm83ry-1
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
      bzrlib/tests/inventory_implementations/basics.py basics.py-20070903044446-kdjwbiu1p1zi9phs-1
      bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test__dirstate_helpers.py test_dirstate_helper-20070504035751-jsbn00xodv0y1eve-2
      bzrlib/tests/test_annotate.py  test_annotate.py-20061213215015-sttc9agsxomls7q0-1
      bzrlib/tests/test_branch.py    test_branch.py-20060116013032-97819aa07b8ab3b5
      bzrlib/tests/test_branchbuilder.py test_branchbuilder.p-20070427022007-zlxpqz2lannhk6y8-2
      bzrlib/tests/test_bundle.py    test.py-20050630184834-092aa401ab9f039c
      bzrlib/tests/test_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_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
      bzrlib/tests/test_index.py     test_index.py-20070712131115-lolkarso50vjr64s-2
      bzrlib/tests/test_info.py      test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
      bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
      bzrlib/tests/test_memorytree.py test_memorytree.py-20060906023413-4wlkalbdpsxi2r4y-3
      bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
      bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
      bzrlib/tests/test_options.py   testoptions.py-20051014093702-96457cfc86319a8f
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
      bzrlib/tests/test_permissions.py test_permissions.py-20051215004520-ccf475789c80e80c
      bzrlib/tests/test_plugins.py   plugins.py-20050622075746-32002b55e5e943e9
      bzrlib/tests/test_remote.py    test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_revisiontree.py test_revisiontree.py-20060615095324-aij44ndxbv1h4c9f-1
      bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
      bzrlib/tests/test_setup.py     test_setup.py-20051208073730-4a59a6368c4efa04
      bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
      bzrlib/tests/test_source.py    test_source.py-20051207061333-a58dea6abecc030d
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
      bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
      bzrlib/tests/test_tree.py      test_tree.py-20060724065232-khgrr0vvmt6ih0mi-1
      bzrlib/tests/test_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
      bzrlib/tests/test_whitebox.py  whitebox.py-20050530064534-a063aafb4a0a3a04
      bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
      bzrlib/tests/tree_implementations/test_iter_search_rules.py test_iter_search_rul-20080528065532-1ml1ttb12az20cxf-1
      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_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
      bzrlib/tests/workingtree_implementations/test_remove.py test_remove.py-20070413183901-rvnp85rtc0q0sclp-1
      bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
      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/local.py      local_transport.py-20050711165921-9b1f142bfe480c24
      bzrlib/transport/remote.py     ssh.py-20060608202016-c25gvf1ob7ypbus6-1
      bzrlib/transport/sftp.py       sftp.py-20051019050329-ab48ce71b7e32dfe
      bzrlib/transport/trace.py      trace.py-20070828055009-7kt0bbc4t4b92apz-1
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
      bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
      bzrlib/upgrade.py              history2weaves.py-20050818063535-e7d319791c19a8b2
      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/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/developers/development-repo.txt developmentrepo.txt-20080102200205-raj42k61dch8pjmj-1
      doc/developers/index.txt       index.txt-20070508041241-qznziunkg0nffhiw-1
      doc/developers/ppa.txt         ppa.txt-20080722055539-606u7t2z32t3ae4w-1
      doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
      doc/en/user-guide/configuring_bazaar.txt configuring_bazaar.t-20071128000722-ncxiua259xwbdbg7-1
      doc/en/user-guide/undoing_mistakes.txt undoing_mistakes.txt-20071121092300-8fyacngt1w98e5mp-1
      doc/es/mini-tutorial/index.txt index.txt-20080504182136-wmoc35u2t6kom8ca-1
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
      tools/win32/bzr.iss.cog        bzr.iss.cog-20060622100836-b3yup582rt3y0nvm-5
    ------------------------------------------------------------
    revno: 3363.14.9
    revision-id: aaron at aaronbentley.com-20080731045146-fhfu8aywmwvusmp7
    parent: aaron at aaronbentley.com-20080731043537-0tdjoh183um91ujf
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-31 16:51:46 +1200
    message:
      Ensure TransformPreview is finalized
    modified:
      bzrlib/tests/intertree_implementations/__init__.py __init__.py-20060724101752-09ysswo1a92uqyoz-3
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
    ------------------------------------------------------------
    revno: 3363.14.8
    revision-id: aaron at aaronbentley.com-20080731043537-0tdjoh183um91ujf
    parent: aaron at aaronbentley.com-20080731042742-b06pm2g7aym4138o
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-31 16:35:37 +1200
    message:
      Fix more tests
    modified:
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
    ------------------------------------------------------------
    revno: 3363.14.7
    revision-id: aaron at aaronbentley.com-20080731042742-b06pm2g7aym4138o
    parent: aaron at aaronbentley.com-20080729062957-aiyinhsew7h15g0p
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-31 16:27:42 +1200
    message:
      Get more tests passing
    modified:
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
    ------------------------------------------------------------
    revno: 3363.14.6
    revision-id: aaron at aaronbentley.com-20080729062957-aiyinhsew7h15g0p
    parent: aaron at aaronbentley.com-20080724163814-61wuhskyej07jmvv
    parent: aaron at aaronbentley.com-20080729062025-djr0t4gno6mieqw4
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Tue 2008-07-29 18:29:57 +1200
    message:
      Merge with extras
    added:
      doc/developers/ppa.txt         ppa.txt-20080722055539-606u7t2z32t3ae4w-1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/_dirstate_helpers_py.py _dirstate_helpers_py-20070710145033-90nz6cqglsk150jy-1
      bzrlib/_patiencediff_py.py     cdvdifflib.py-20051106064558-f8f8097fbf0db4e4
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/check.py                check.py-20050309040759-f3a679400c06bcc1
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      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/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/smart/branch.py         branch.py-20061124031907-mzh3pla28r83r97f-1
      bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
      bzrlib/tests/blackbox/test_check.py test_check.py-20071024054728-mn44rt3z5hnqcbke-1
      bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
      bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
      bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
      bzrlib/tests/branch_implementations/test_stacking.py test_stacking.py-20080214020755-msjlkb7urobwly0f-1
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
      bzrlib/tests/test_info.py      test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
      bzrlib/tests/test_remote.py    test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_smart.py     test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
      bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
      bzrlib/tests/test_urlutils.py  test_urlutils.py-20060502192900-46b1f9579987cf9c
      bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/urlutils.py             urlutils.py-20060502195429-e8a161ecf8fac004
      doc/developers/index.txt       index.txt-20070508041241-qznziunkg0nffhiw-1
      doc/developers/releasing.txt   releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
      tools/doc_generate/autodoc_rstx.py autodoc_rstx.py-20060420024836-3e0d4a526452193c
    ------------------------------------------------------------
    revno: 3363.14.5
    revision-id: aaron at aaronbentley.com-20080724163814-61wuhskyej07jmvv
    parent: aaron at aaronbentley.com-20080724162950-5jr3kzi813cydtsp
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-24 12:38:14 -0400
    message:
      Add _file_size for comparison
    modified:
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
    ------------------------------------------------------------
    revno: 3363.14.4
    revision-id: aaron at aaronbentley.com-20080724162950-5jr3kzi813cydtsp
    parent: aaron at aaronbentley.com-20080724160959-oeoyqyf5nydtskno
    parent: aaron at aaronbentley.com-20080724162830-a8ibxvc75czvqffn
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-24 12:29:50 -0400
    message:
      Merge with paths2ids
    modified:
      bzrlib/tests/tree_implementations/test_inv.py test_inv.py-20070312023226-0cdvk5uwhutis9vg-1
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
    ------------------------------------------------------------
    revno: 3363.14.3
    revision-id: aaron at aaronbentley.com-20080724160959-oeoyqyf5nydtskno
    parent: aaron at aaronbentley.com-20080723215919-me5vfhbtap1u2eei
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Thu 2008-07-24 12:09:59 -0400
    message:
      Handle missing files better
    modified:
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
    ------------------------------------------------------------
    revno: 3363.14.2
    revision-id: aaron at aaronbentley.com-20080723215919-me5vfhbtap1u2eei
    parent: aaron at aaronbentley.com-20080723215355-8o0z3fpj6ysvwpe2
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Wed 2008-07-23 17:59:19 -0400
    message:
      Get iter_changes running to completion
    modified:
      bzrlib/tests/intertree_implementations/__init__.py __init__.py-20060724101752-09ysswo1a92uqyoz-3
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
    ------------------------------------------------------------
    revno: 3363.14.1
    revision-id: aaron at aaronbentley.com-20080723215355-8o0z3fpj6ysvwpe2
    parent: aaron at aaronbentley.com-20080723191954-zn7nmtj7ama6q8vs
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: intertree
    timestamp: Wed 2008-07-23 17:53:55 -0400
    message:
      Update to support comparison
    modified:
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
=== modified file 'NEWS'
--- a/NEWS	2008-09-23 03:52:00 +0000
+++ b/NEWS	2008-09-23 05:15:23 +0000
@@ -73,6 +73,9 @@
     * The full test suite is passing again on OSX.
       (Guillermo Gonzalez, Vincent Ladeuil)
 
+    * PreviewTree is now tested via intertree_implementations.
+      (Aaron Bentley)
+
   INTERNALS:
 
     * A new hook, ``Branch.open``, has been added, which is called when

=== modified file 'bzrlib/tests/intertree_implementations/__init__.py'
--- a/bzrlib/tests/intertree_implementations/__init__.py	2008-04-28 08:57:45 +0000
+++ b/bzrlib/tests/intertree_implementations/__init__.py	2008-07-31 04:51:46 +0000
@@ -24,6 +24,7 @@
 
 import bzrlib.errors as errors
 from bzrlib.transport import get_transport
+from bzrlib.transform import TransformPreview
 from bzrlib.tests import (
                           adapt_modules,
                           default_transport,
@@ -42,7 +43,7 @@
     )
 
 
-def return_provided_trees(source, target):
+def return_provided_trees(test_case, source, target):
     """Return the source and target tree unaltered."""
     return source, target
 
@@ -92,6 +93,10 @@
             result.append(scenario)
         return result
 
+def mutable_trees_to_preview_trees(test_case, source, target):
+    preview = TransformPreview(target)
+    test_case.addCleanup(preview.finalize)
+    return source, preview.get_preview_tree()
 
 def load_tests(basic_tests, module, loader):
     result = loader.suiteClass()
@@ -112,6 +117,13 @@
              optimiser._matching_from_tree_format,
              optimiser._matching_to_tree_format,
              optimiser._test_mutable_trees_to_test_trees))
+
+    # test PreviewTree
+    test_intertree_permutations.append(
+        (InterTree,
+         default_tree_format,
+         default_tree_format,
+         mutable_trees_to_preview_trees))
     adapter = InterTreeTestProviderAdapter(
         default_transport,
         # None here will cause a readonly decorator to be created

=== modified file 'bzrlib/tests/intertree_implementations/test_compare.py'
--- a/bzrlib/tests/intertree_implementations/test_compare.py	2008-08-14 06:54:35 +0000
+++ b/bzrlib/tests/intertree_implementations/test_compare.py	2008-09-08 20:38:46 +0000
@@ -50,7 +50,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_no_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -64,7 +64,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([('a', 'a-id', 'file'),
                           ('b', 'b-id', 'directory'),
@@ -94,7 +94,7 @@
         # default intertree, but may perform a commit for other tree types,
         # which may reduce the validity of the test. XXX: Think about how to
         # address this.
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -108,7 +108,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_no_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -125,7 +125,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_2(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([('a', 'a-id', 'file', True, False)], d.modified)
@@ -139,7 +139,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_3(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([('b/c', 'c-id', 'file', False, True)], d.modified)
@@ -153,7 +153,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_4(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -167,7 +167,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_5(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -181,7 +181,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_6(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -195,7 +195,7 @@
         tree2.set_root_id(tree1.get_root_id())
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(specific_files=['a'])
         self.assertEqual([('a', 'a-id', 'file')], d.added)
         self.assertEqual([], d.modified)
@@ -208,7 +208,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(
             specific_files=['a', 'b/c'])
         self.assertEqual(
@@ -225,7 +225,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(specific_files=['b'])
         self.assertEqual(
             [('b', 'b-id', 'directory'),('b/c', 'c-id', 'file')],
@@ -241,7 +241,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_5(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(want_unchanged=True)
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -257,7 +257,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_3(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(specific_files=['b'])
         # the type of tree-3 does not matter - it is used as a lookup, not
         # a dispatch. XXX: For dirstate it does speak to the optimisability of
@@ -292,7 +292,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         self.assertRaises(errors.PathsNotVersionedError, 
             self.intertree_class(tree1, tree2).compare,
             specific_files=['d'],
@@ -307,7 +307,7 @@
         tree1.add(['a', 'c'], ['a-id', 'c-id'])
         tree2.add(['a', 'c'], ['a-id', 'c-id'])
 
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare()
         self.assertEqual([], d.added)
         self.assertEqual([(u'a', 'a-id', 'file', True, False),
@@ -327,7 +327,7 @@
             links_supported = True
         else:
             links_supported = False
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         d = self.intertree_class(tree1, tree2).compare(want_unversioned=True)
         self.assertEqual([], d.added)
         self.assertEqual([], d.modified)
@@ -367,7 +367,7 @@
 
         Read lock them, and add the unlock to the cleanup.
         """
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         tree1.lock_read()
         self.addCleanup(tree1.unlock)
         tree2.lock_read()
@@ -429,30 +429,34 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_no_content(tree1)
         tree2 = self.get_tree_no_parents_no_content(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         self.assertEqual([], self.do_iter_changes(tree1, tree2))
 
     def added(self, tree, file_id):
-        entry = tree.inventory[file_id]
-        path = tree.id2path(file_id)
+        path, entry = self.get_path_entry(tree, file_id)
         return (file_id, (None, path), True, (False, True), (None, entry.parent_id),
                 (None, entry.name), (None, entry.kind),
                 (None, entry.executable))
 
+    @staticmethod
+    def get_path_entry(tree, file_id):
+        iterator = tree.iter_entries_by_dir(specific_file_ids=[file_id])
+        return iterator.next()
+
     def content_changed(self, tree, file_id):
-        entry = tree.inventory[file_id]
-        path = tree.id2path(file_id)
-        return (file_id, (path, path), True, (True, True), (entry.parent_id, entry.parent_id),
+        path, entry = self.get_path_entry(tree, file_id)
+        return (file_id, (path, path), True, (True, True),
+                (entry.parent_id, entry.parent_id),
                 (entry.name, entry.name), (entry.kind, entry.kind),
                 (entry.executable, entry.executable))
 
     def kind_changed(self, from_tree, to_tree, file_id):
-        old_entry = from_tree.inventory[file_id]
-        new_entry = to_tree.inventory[file_id]
-        path = to_tree.id2path(file_id)
-        from_path = from_tree.id2path(file_id)
-        return (file_id, (from_path, path), True, (True, True), (old_entry.parent_id, new_entry.parent_id),
-                (old_entry.name, new_entry.name), (old_entry.kind, new_entry.kind),
+        from_path, old_entry = self.get_path_entry(from_tree, file_id)
+        path, new_entry = self.get_path_entry(to_tree, file_id)
+        return (file_id, (from_path, path), True, (True, True),
+                (old_entry.parent_id, new_entry.parent_id),
+                (old_entry.name, new_entry.name),
+                (old_entry.kind, new_entry.kind),
                 (old_entry.executable, new_entry.executable))
 
     def missing(self, file_id, from_path, to_path, parent_id, kind):
@@ -471,10 +475,8 @@
                 (entry.executable, None))
 
     def renamed(self, from_tree, to_tree, file_id, content_changed):
-        from_entry = from_tree.inventory[file_id]
-        to_entry = to_tree.inventory[file_id]
-        from_path = from_tree.id2path(file_id)
-        to_path = to_tree.id2path(file_id)
+        from_path, from_entry = self.get_path_entry(from_tree, file_id)
+        to_path, to_entry = self.get_path_entry(to_tree, file_id)
         return (file_id, (from_path, to_path), content_changed, (True, True),
             (from_entry.parent_id, to_entry.parent_id),
             (from_entry.name, to_entry.name),
@@ -482,12 +484,11 @@
             (from_entry.executable, to_entry.executable))
 
     def unchanged(self, tree, file_id):
-        entry = tree.inventory[file_id]
+        path, entry = self.get_path_entry(tree, file_id)
         parent = entry.parent_id
         name = entry.name
         kind = entry.kind
         executable = entry.executable
-        path = tree.id2path(file_id)
         return (file_id, (path, path), False, (True, True),
                (parent, parent), (name, name), (kind, kind),
                (executable, executable))
@@ -495,7 +496,7 @@
     def unversioned(self, tree, path):
         """Create an unversioned result."""
         _, basename = os.path.split(path)
-        kind = file_kind(tree.abspath(path))
+        kind = tree._comparison_data(None, path)[0]
         return (None, (None, path), True, (False, False), (None, None),
                 (None, basename), (None, kind),
                 (None, False))
@@ -593,7 +594,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_2(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         root_id = tree1.path2id('')
         self.assertEqual([('a-id', ('a', 'a'), True, (True, True),
                            (root_id, root_id), ('a', 'a'),
@@ -605,7 +606,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_3(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         self.assertEqual([('c-id', ('b/c', 'b/c'), False, (True, True),
                            ('b-id', 'b-id'), ('c', 'c'), ('file', 'file'),
                           (False, True))],
@@ -621,7 +622,7 @@
         self.build_tree(['1/a-empty/', '2/a-empty/'])
         tree1.add(['a-empty'], ['a-empty'])
         tree2.add(['a-empty'], ['a-empty'])
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         expected = []
         self.assertEqual(expected, self.do_iter_changes(tree1, tree2))
 
@@ -630,7 +631,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_4(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         root_id = tree1.path2id('')
         self.assertEqual([('a-id', ('a', 'd'), False, (True, True),
                            (root_id, root_id), ('a', 'd'), ('file', 'file'),
@@ -642,7 +643,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_5(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         root_id = tree1.path2id('')
         self.assertEqual([('a-id', ('a', 'd'), True, (True, True),
                            (root_id, root_id), ('a', 'd'), ('file', 'file'),
@@ -654,7 +655,7 @@
         tree2 = self.make_to_branch_and_tree('2')
         tree1 = self.get_tree_no_parents_abc_content(tree1)
         tree2 = self.get_tree_no_parents_abc_content_6(tree2)
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         root_id = tree1.path2id('')
         self.assertEqual([('c-id', ('b/c', 'e'), False, (True, True),
                            ('b-id', root_id), ('c', 'e'), ('file', 'file'),
@@ -670,7 +671,7 @@
         os.unlink('2/a')
         shutil.rmtree('2/b')
         # TODO ? have a symlink here?
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         root_id = tree1.path2id('')
         expected = sorted([
             self.missing('a-id', 'a', 'a', root_id, 'file'),
@@ -973,7 +974,7 @@
         tree2 = self.make_to_branch_and_tree('tree2')
         tree2.set_root_id(tree1.get_root_id())
         self.build_tree(['tree2/dir/', 'tree2/dir/file'])
-        tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
         expected = [
             self.unversioned(tree2, 'dir'),
             ]

=== modified file 'bzrlib/tests/test_transform.py'
--- a/bzrlib/tests/test_transform.py	2008-09-20 17:20:21 +0000
+++ b/bzrlib/tests/test_transform.py	2008-09-22 18:05:12 +0000
@@ -2053,12 +2053,6 @@
                           (False, False))],
                           list(preview_tree.iter_changes(revision_tree)))
 
-    def test_wrong_tree_value_error(self):
-        revision_tree, preview_tree = self.get_tree_and_preview_tree()
-        e = self.assertRaises(ValueError, preview_tree.iter_changes,
-                              preview_tree)
-        self.assertEqual('from_tree must be transform source tree.', str(e))
-
     def test_include_unchanged_value_error(self):
         revision_tree, preview_tree = self.get_tree_and_preview_tree()
         e = self.assertRaises(ValueError, preview_tree.iter_changes,

=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py	2008-09-08 20:37:16 +0000
+++ b/bzrlib/transform.py	2008-09-08 20:38:46 +0000
@@ -1500,6 +1500,16 @@
             self.__by_parent = self._transform.by_parent()
         return self.__by_parent
 
+    def _comparison_data(self, entry, path):
+        kind, size, executable, link_or_sha1 = self.path_content_summary(path)
+        if kind == 'missing':
+            kind = None
+            executable = False
+        else:
+            file_id = self._transform.final_file_id(self._path2trans_id(path))
+            executable = self.is_executable(file_id, path)
+        return kind, executable, None
+
     def lock_read(self):
         # Perhaps in theory, this should lock the TreeTransform?
         pass
@@ -1645,6 +1655,9 @@
             return self._transform._tree.get_file_mtime(file_id, path)
         return self._stat_limbo_file(file_id).st_mtime
 
+    def _file_size(self, entry, stat_value):
+        return self.get_file_size(entry.file_id)
+
     def get_file_size(self, file_id):
         """See Tree.get_file_size"""
         if self.kind(file_id) == 'file':
@@ -1656,6 +1669,8 @@
         return self._transform._tree.get_file_sha1(file_id)
 
     def is_executable(self, file_id, path=None):
+        if file_id is None:
+            return False
         trans_id = self._transform.trans_id_file_id(file_id)
         try:
             return self._transform._new_executability[trans_id]
@@ -1703,7 +1718,13 @@
         ignored.
         """
         if from_tree is not self._transform._tree:
-            raise ValueError('from_tree must be transform source tree.')
+            return tree.InterTree(from_tree, self).iter_changes(
+                include_unchanged=include_unchanged,
+                specific_files=specific_files,
+                pb=pb,
+                extra_trees=extra_trees,
+                require_versioned=require_versioned,
+                want_unversioned=want_unversioned)
         if include_unchanged:
             raise ValueError('include_unchanged is not supported')
         if specific_files is not None:

=== modified file 'bzrlib/tree.py'
--- a/bzrlib/tree.py	2008-09-20 16:40:41 +0000
+++ b/bzrlib/tree.py	2008-09-20 17:20:39 +0000
@@ -835,10 +835,10 @@
         else:
             all_unversioned = deque()
         to_paths = {}
-        from_entries_by_dir = list(self.source.inventory.iter_entries_by_dir(
+        from_entries_by_dir = list(self.source.iter_entries_by_dir(
             specific_file_ids=specific_file_ids))
         from_data = dict((e.file_id, (p, e)) for p, e in from_entries_by_dir)
-        to_entries_by_dir = list(self.target.inventory.iter_entries_by_dir(
+        to_entries_by_dir = list(self.target.iter_entries_by_dir(
             specific_file_ids=specific_file_ids))
         num_entries = len(from_entries_by_dir) + len(to_entries_by_dir)
         entry_count = 0
@@ -936,7 +936,7 @@
             if file_id in to_paths:
                 # already returned
                 continue
-            if not file_id in self.target.inventory:
+            if not file_id in self.target.all_file_ids():
                 # common case - paths we have not emitted are not present in
                 # target.
                 to_path = None

=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py	2008-09-01 14:03:34 +0000
+++ b/bzrlib/workingtree_4.py	2008-09-08 20:55:25 +0000
@@ -1812,7 +1812,10 @@
 
     _matching_from_tree_format = WorkingTreeFormat4()
     _matching_to_tree_format = WorkingTreeFormat4()
-    _test_mutable_trees_to_test_trees = make_source_parent_tree
+
+    @classmethod
+    def _test_mutable_trees_to_test_trees(klass, test_case, source, target):
+        return klass.make_source_parent_tree(source, target)
 
     def iter_changes(self, include_unchanged=False,
                       specific_files=None, pb=None, extra_trees=[],




More information about the bazaar-commits mailing list