Rev 1864: Merge in bzr.dev and the fix for renaming directories to the root. in http://bzr.arbash-meinel.com/branches/bzr/1.3-dev/nested-trees

John Arbash Meinel john at arbash-meinel.com
Thu Mar 6 18:29:16 GMT 2008


At http://bzr.arbash-meinel.com/branches/bzr/1.3-dev/nested-trees

------------------------------------------------------------
revno: 1864
revision-id:john at arbash-meinel.com-20080306182912-6uvyzdu55v6jlqj1
parent: john at arbash-meinel.com-20080306172059-20aq8b5i5x7ouoaj
parent: john at arbash-meinel.com-20080306182143-y7sqcm5fiyc6y6py
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: nested-trees
timestamp: Thu 2008-03-06 18:29:12 +0000
message:
  Merge in bzr.dev and the fix for renaming directories to the root.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/deprecated_graph.py     graph.py-20050905070950-b47dce53236c5e48
  bzrlib/dirstate.py             dirstate.py-20060728012006-d6mvoihjb3je9peu-1
  bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
  bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
  bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
  bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
  bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
  bzrlib/tests/test_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
  bzrlib/tests/workingtree_implementations/test_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
  bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
  doc/en/user-guide/resolving_conflicts.txt resolving_conflicts.-20071122141511-0knao2lklsdsvb1q-5
    ------------------------------------------------------------
    revno: 1731.134.1347
    revision-id:john at arbash-meinel.com-20080306182143-y7sqcm5fiyc6y6py
    parent: pqm at pqm.ubuntu.com-20080306120728-w54bzmmrr0ri1xfu
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: fix_update_to_root
    timestamp: Thu 2008-03-06 18:21:43 +0000
    message:
      Fix moving directories to root nodes.
    modified:
      bzrlib/dirstate.py             dirstate.py-20060728012006-d6mvoihjb3je9peu-1
      bzrlib/tests/workingtree_implementations/test_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
    ------------------------------------------------------------
    revno: 1731.134.1346
    revision-id:pqm at pqm.ubuntu.com-20080306120728-w54bzmmrr0ri1xfu
    parent: pqm at pqm.ubuntu.com-20080306002706-0ahjg0eqnxh8ofas
    parent: mbp at sourcefrog.net-20080301091139-iwnt5j6380oxnlw5
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Thu 2008-03-06 12:07:28 +0000
    message:
      Merge tsort NULL_REVISION patch from mwhudson, with John's import fix
    modified:
      bzrlib/deprecated_graph.py     graph.py-20050905070950-b47dce53236c5e48
      bzrlib/tests/test_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
      bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
        ------------------------------------------------------------
        revno: 1731.1741.2
        revision-id:mbp at sourcefrog.net-20080301091139-iwnt5j6380oxnlw5
        parent: mbp at sourcefrog.net-20080229155355-syrrv7nzr4y9oyyq
        committer: Martin Pool <mbp at sourcefrog.net>
        branch nick: integration
        timestamp: Sat 2008-03-01 09:11:39 +0000
        message:
          Fix up import of tsort
        modified:
          bzrlib/deprecated_graph.py     graph.py-20050905070950-b47dce53236c5e48
          bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
        ------------------------------------------------------------
        revno: 1731.1741.1
        revision-id:mbp at sourcefrog.net-20080229155355-syrrv7nzr4y9oyyq
        parent: pqm at pqm.ubuntu.com-20080229011300-p50it0si2y8mbv0d
        parent: michael.hudson at canonical.com-20080226230415-iaecaj60fzthfzzi
        committer: Martin Pool <mbp at sourcefrog.net>
        branch nick: integration
        timestamp: Fri 2008-02-29 15:53:55 +0000
        message:
          Merge tsort NULL_REVISION patch from mwhudson, with John's import fix
        modified:
          bzrlib/tests/test_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
          bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
        ------------------------------------------------------------
        revno: 1731.1740.1
        revision-id:michael.hudson at canonical.com-20080226230415-iaecaj60fzthfzzi
        parent: pqm at pqm.ubuntu.com-20080225092119-bk1won32t9nw4h6u
        committer: Michael Hudson <michael.hudson at canonical.com>
        branch nick: merge_sort-empty-graph
        timestamp: Wed 2008-02-27 12:04:15 +1300
        message:
          test and fix
        modified:
          bzrlib/tests/test_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
          bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
    ------------------------------------------------------------
    revno: 1731.134.1345
    revision-id:pqm at pqm.ubuntu.com-20080306002706-0ahjg0eqnxh8ofas
    parent: pqm at pqm.ubuntu.com-20080305131343-toq33x607hecihie
    parent: jelmer at samba.org-20080305223658-a9ici3oxtwyy0v11
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Thu 2008-03-06 00:27:06 +0000
    message:
      Small doc fix in conflict resolution. (Martin Albisetti)
    modified:
      doc/en/user-guide/resolving_conflicts.txt resolving_conflicts.-20071122141511-0knao2lklsdsvb1q-5
        ------------------------------------------------------------
        revno: 1731.1739.1
        revision-id:jelmer at samba.org-20080305223658-a9ici3oxtwyy0v11
        parent: pqm at pqm.ubuntu.com-20080305131343-toq33x607hecihie
        parent: argentina at gmail.com-20080305102617-ah2z6vbayk1liu0b
        committer: Jelmer Vernooij <jelmer at samba.org>
        branch nick: bzr.dev
        timestamp: Wed 2008-03-05 23:36:58 +0100
        message:
          Merge documentation fix from Martin.
        modified:
          doc/en/user-guide/resolving_conflicts.txt resolving_conflicts.-20071122141511-0knao2lklsdsvb1q-5
        ------------------------------------------------------------
        revno: 1731.1738.1
        revision-id:argentina at gmail.com-20080305102617-ah2z6vbayk1liu0b
        parent: pqm at pqm.ubuntu.com-20080304113936-4wrordr8lrxhvfdl
        committer: Martin Albisetti <argentina at gmail.com>
        branch nick: bzr.docfix
        timestamp: Wed 2008-03-05 10:26:17 +0000
        message:
          Small tweak to make resolving conflicts a bit clearer
        modified:
          doc/en/user-guide/resolving_conflicts.txt resolving_conflicts.-20071122141511-0knao2lklsdsvb1q-5
    ------------------------------------------------------------
    revno: 1731.134.1344
    revision-id:pqm at pqm.ubuntu.com-20080305131343-toq33x607hecihie
    parent: pqm at pqm.ubuntu.com-20080304113936-4wrordr8lrxhvfdl
    parent: abentley at lappy-20080305100828-nj092v7gjok7h7mo
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Wed 2008-03-05 13:13:43 +0000
    message:
      Accelerate Branch revision-history operations, looms (abentley)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
      bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
        ------------------------------------------------------------
        revno: 1731.1737.7
        revision-id:abentley at lappy-20080305100828-nj092v7gjok7h7mo
        parent: aaron at aaronbentley.com-20080304231331-y8arw2a75cxcp5cb
        committer: Aaron Bentley <abentley at lappy>
        branch nick: faster_generate_history
        timestamp: Wed 2008-03-05 10:08:28 +0000
        message:
          Update from review comments
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
          bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
        ------------------------------------------------------------
        revno: 1731.1737.6
        revision-id:aaron at aaronbentley.com-20080304231331-y8arw2a75cxcp5cb
        parent: aaron at aaronbentley.com-20080304230014-uv5qocaij4rvo5nw
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Tue 2008-03-04 23:13:31 +0000
        message:
          Update docs
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
        ------------------------------------------------------------
        revno: 1731.1737.5
        revision-id:aaron at aaronbentley.com-20080304230014-uv5qocaij4rvo5nw
        parent: aaron at aaronbentley.com-20080304222054-3vu14n6m8iml94x8
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Tue 2008-03-04 23:00:14 +0000
        message:
          Further clean-ups, move None conversion out into API functions
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
        ------------------------------------------------------------
        revno: 1731.1737.4
        revision-id:aaron at aaronbentley.com-20080304222054-3vu14n6m8iml94x8
        parent: aaron at aaronbentley.com-20080304215933-8tplic6pcdpd7tp7
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Tue 2008-03-04 22:20:54 +0000
        message:
          Simplify _lefthand_history code
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
        ------------------------------------------------------------
        revno: 1731.1737.3
        revision-id:aaron at aaronbentley.com-20080304215933-8tplic6pcdpd7tp7
        parent: aaron at aaronbentley.com-20080303115347-sdp9qnx1a6z80x43
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Tue 2008-03-04 21:59:33 +0000
        message:
          Use Graph to generate revision_history
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
          bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
        ------------------------------------------------------------
        revno: 1731.1737.2
        revision-id:aaron at aaronbentley.com-20080303115347-sdp9qnx1a6z80x43
        parent: aaron at aaronbentley.com-20080303112452-iur8sj9mpi9fd0t5
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Mon 2008-03-03 11:53:47 +0000
        message:
          Add write lock
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
        ------------------------------------------------------------
        revno: 1731.1737.1
        revision-id:aaron at aaronbentley.com-20080303112452-iur8sj9mpi9fd0t5
        parent: pqm at pqm.ubuntu.com-20080227213154-a7egrkiapeuvmu3b
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: faster_generate_history
        timestamp: Mon 2008-03-03 11:24:52 +0000
        message:
          Avoid doing Branch._lefthand_history twice
        modified:
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
    ------------------------------------------------------------
    revno: 1731.134.1343
    revision-id:pqm at pqm.ubuntu.com-20080304113936-4wrordr8lrxhvfdl
    parent: pqm at pqm.ubuntu.com-20080304003709-35vh1eqa8tuuq548
    parent: aaron at aaronbentley.com-20080304100706-3oodq9y6t94qamoa
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Tue 2008-03-04 11:39:36 +0000
    message:
      Merge with bzr.dev
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
        ------------------------------------------------------------
        revno: 1731.1736.5
        revision-id:aaron at aaronbentley.com-20080304100706-3oodq9y6t94qamoa
        parent: aaron at aaronbentley.com-20080303220215-pist5ysqfl8m4nhl
        parent: pqm at pqm.ubuntu.com-20080304003709-35vh1eqa8tuuq548
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: bzr.ab.integration
        timestamp: Tue 2008-03-04 10:07:06 +0000
        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/cmd_version_info.py     __init__.py-20051228204928-697d01fdca29c99b
          bzrlib/dirstate.py             dirstate.py-20060728012006-d6mvoihjb3je9peu-1
          bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
          bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
          bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
          bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
          bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
          bzrlib/tests/blackbox/test_version_info.py test_bb_version_info.py-20051228204928-91711c6559d952f7
          bzrlib/tests/branch_implementations/test_commit.py test_commit.py-20070206022134-117z1i5b644p63r0-1
          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/version_info_formats/__init__.py generate_version_info.py-20051228204928-8358edabcddcd97e
          bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
          bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
        ------------------------------------------------------------
        revno: 1731.1736.4
        revision-id:aaron at aaronbentley.com-20080303220215-pist5ysqfl8m4nhl
        parent: aaron at aaronbentley.com-20080303173950-b47c6e6gppgl9cno
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: specific-file
        timestamp: Mon 2008-03-03 22:02:15 +0000
        message:
          Update NEWS
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
        ------------------------------------------------------------
        revno: 1731.1736.3
        revision-id:aaron at aaronbentley.com-20080303173950-b47c6e6gppgl9cno
        parent: aaron at aaronbentley.com-20080303165241-0k2c7ggs6kr9q6hf
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: specific-file
        timestamp: Mon 2008-03-03 17:39:50 +0000
        message:
          Test interesting_files for LCA merge
        modified:
          bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
        ------------------------------------------------------------
        revno: 1731.1736.2
        revision-id:aaron at aaronbentley.com-20080303165241-0k2c7ggs6kr9q6hf
        parent: aaron at aaronbentley.com-20080302034700-9t3fo6bczbqbxixl
        parent: aaron at aaronbentley.com-20080303163910-b40appfb1s165ifb
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: specific-file
        timestamp: Mon 2008-03-03 16:52:41 +0000
        message:
          Merge with fix-conflict-handling
        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/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: 1731.1736.1
        revision-id:aaron at aaronbentley.com-20080302034700-9t3fo6bczbqbxixl
        parent: aaron at aaronbentley.com-20080131171119-f41jyglzkfjwh64f
        committer: Aaron Bentley <aaron at aaronbentley.com>
        branch nick: specific-file
        timestamp: Sat 2008-03-01 22:47:00 -0500
        message:
          Add interesting files to file list
        modified:
          bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
    ------------------------------------------------------------
    revno: 1731.134.1342
    revision-id:pqm at pqm.ubuntu.com-20080304003709-35vh1eqa8tuuq548
    parent: pqm at pqm.ubuntu.com-20080303194913-w6v25p1a79x3plya
    parent: bialix at ukr.net-20080303230447-83vigrbk417p4tdi
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Tue 2008-03-04 00:37:09 +0000
    message:
      (bialix) Allow rename (change case of name) directory on case-insensitive
       filesystem.
    modified:
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
        ------------------------------------------------------------
        revno: 1731.1735.2
        revision-id:bialix at ukr.net-20080303230447-83vigrbk417p4tdi
        parent: bialix at ukr.net-20080229155356-wjc96jdnisg0evah
        committer: Alexander Belchenko <bialix at ukr.net>
        branch nick: mv.dir.cifs
        timestamp: Tue 2008-03-04 01:04:47 +0200
        message:
          test_mv_file_to_wrong_case_dir require feature CaseInsensitiveFilesystem
        modified:
          bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
        ------------------------------------------------------------
        revno: 1731.1735.1
        revision-id:bialix at ukr.net-20080229155356-wjc96jdnisg0evah
        parent: pqm at pqm.ubuntu.com-20080229011300-p50it0si2y8mbv0d
        committer: Alexander Belchenko <bialix at ukr.net>
        branch nick: mv.dir.cifs
        timestamp: Fri 2008-02-29 17:53:56 +0200
        message:
          Allow rename (change case of name) directory on case-insensitive filesystem.
        modified:
          bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
          bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
    ------------------------------------------------------------
    revno: 1731.134.1341
    revision-id:pqm at pqm.ubuntu.com-20080303194913-w6v25p1a79x3plya
    parent: pqm at pqm.ubuntu.com-20080303181409-gyupt23ikib7s46z
    parent: jw+debian at jameswestby.net-20080302175031-hbb06gm2yiutjv7w
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Mon 2008-03-03 19:49:13 +0000
    message:
      (James Westby) Make -Dpack not raise an error for unknown variable
    modified:
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
        ------------------------------------------------------------
        revno: 1731.1734.1
        revision-id:jw+debian at jameswestby.net-20080302175031-hbb06gm2yiutjv7w
        parent: pqm at pqm.ubuntu.com-20080223141021-zgxlzjmg5c0hym5n
        committer: James Westby <jw+debian at jameswestby.net>
        branch nick: bzr.dev
        timestamp: Sun 2008-03-02 17:50:31 +0000
        message:
          Make -Dpack not cause a error trying to use an unkown variable.
        modified:
          bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 1731.134.1340
    revision-id:pqm at pqm.ubuntu.com-20080303181409-gyupt23ikib7s46z
    parent: pqm at pqm.ubuntu.com-20080229011300-p50it0si2y8mbv0d
    parent: aaron at aaronbentley.com-20080303163910-b40appfb1s165ifb
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Mon 2008-03-03 18:14:09 +0000
    message:
      Use correct index in LCA merge (abentley, #196780)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
    ------------------------------------------------------------
    revno: 1731.1622.11
    revision-id:aaron at aaronbentley.com-20080303163910-b40appfb1s165ifb
    parent: aaron at aaronbentley.com-20080302150613-s2khclcvlsspzb3h
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: fix-conflict-handling
    timestamp: Mon 2008-03-03 16:39:10 +0000
    message:
      Update NEWS
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 1731.1622.10
    revision-id:aaron at aaronbentley.com-20080302150613-s2khclcvlsspzb3h
    parent: aaron at aaronbentley.com-20080302110118-nsjm69qqmgltl1w5
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: fix-conflict-handling
    timestamp: Sun 2008-03-02 15:06:13 +0000
    message:
      Use correct index when emitting conflicted-b
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
    ------------------------------------------------------------
    revno: 1731.1622.9
    revision-id:aaron at aaronbentley.com-20080302110118-nsjm69qqmgltl1w5
    parent: aaron at aaronbentley.com-20080131171119-f41jyglzkfjwh64f
    parent: pqm at pqm.ubuntu.com-20080227213154-a7egrkiapeuvmu3b
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: fix-conflict-handling
    timestamp: Sun 2008-03-02 06:01:18 -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/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: 1731.1622.8
    revision-id:aaron at aaronbentley.com-20080131171119-f41jyglzkfjwh64f
    parent: aaron.bentley at utoronto.ca-20080103063853-7sv9zq8m87p7gzf7
    parent: pqm at pqm.ubuntu.com-20080129045844-u41ywp910i6jv8bz
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: lcamerge
    timestamp: Thu 2008-01-31 12:11:19 -0500
    message:
      Merge with bzr.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/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/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/status.py               status.py-20050505062338-431bfa63ec9b19e6
      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/blackbox/test_upgrade.py test_upgrade.py-20060120060132-b41e5ed2f886ad28
      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/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
      bzrlib/urlutils.py             urlutils.py-20060502195429-e8a161ecf8fac004
      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
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-02-28 21:27:44 +0000
+++ b/NEWS	2008-03-05 13:13:43 +0000
@@ -38,6 +38,10 @@
 
   IMPROVEMENTS:
 
+   * BzrBranch._lefthand_history is faster on pack repos.  (Aaron Bentley)
+
+   * Branch6.generate_revision_history is faster.  (Aaron Bentley)
+
   BUGFIXES:
 
     * Disable plink's interactive prompt for password.
@@ -46,6 +50,8 @@
     * Include quick-start-summary.svg file to python-based installer(s)
       for Windows. (#192924, Alexander Belchenko)
 
+    * lca merge now respects specified files. (Aaron Bentley)
+
     * Make version-info --custom imply --all. (#195560, James Westby)
 
     * ``merge --preview`` now works for merges that add or modify
@@ -54,6 +60,9 @@
     * Upgrade bundled ConfigObj to version 4.5.1, which properly quotes #
       signs, among other small improvements. (Matt Nordhoff, #86838)
 
+    * Use correct indices when emitting LCA conflicts.  This fixes IndexError
+      errors.  (Aaron Bentley, #196780)
+
   API BREAKS:
 
     * Support for loading plugins from zip files and

=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py	2008-02-26 23:45:35 +0000
+++ b/bzrlib/branch.py	2008-03-05 13:13:43 +0000
@@ -260,8 +260,7 @@
             if last_revision is None:
                 pb.update('get source history')
                 last_revision = from_branch.last_revision()
-                if last_revision is None:
-                    last_revision = _mod_revision.NULL_REVISION
+                last_revision = _mod_revision.ensure_null(last_revision)
             return self.repository.fetch(from_branch.repository,
                                          revision_id=last_revision,
                                          pb=nested_pb)
@@ -1394,6 +1393,7 @@
         configured to check constraints on history, in which case this may not
         be permitted.
         """
+        revision_id = _mod_revision.ensure_null(revision_id)
         history = self._lefthand_history(revision_id)
         assert len(history) == revno, '%d != %d' % (len(history), revno)
         self.set_revision_history(history)
@@ -1410,21 +1410,23 @@
         if 'evil' in debug.debug_flags:
             mutter_callsite(4, "_lefthand_history scales with history.")
         # stop_revision must be a descendant of last_revision
-        stop_graph = self.repository.get_revision_graph(revision_id)
-        if (last_rev is not None and last_rev != _mod_revision.NULL_REVISION
-            and last_rev not in stop_graph):
-            # our previous tip is not merged into stop_revision
-            raise errors.DivergedBranches(self, other_branch)
+        graph = self.repository.get_graph()
+        if last_rev is not None:
+            if not graph.is_ancestor(last_rev, revision_id):
+                # our previous tip is not merged into stop_revision
+                raise errors.DivergedBranches(self, other_branch)
         # make a new revision history from the graph
+        parents_map = graph.get_parent_map([revision_id])
+        if revision_id not in parents_map:
+            raise errors.NoSuchRevision(self, revision_id)
         current_rev_id = revision_id
         new_history = []
-        while current_rev_id not in (None, _mod_revision.NULL_REVISION):
+        # Do not include ghosts or graph origin in revision_history
+        while (current_rev_id in parents_map and
+               len(parents_map[current_rev_id]) > 0):
             new_history.append(current_rev_id)
-            current_rev_id_parents = stop_graph[current_rev_id]
-            try:
-                current_rev_id = current_rev_id_parents[0]
-            except IndexError:
-                current_rev_id = None
+            current_rev_id = parents_map[current_rev_id][0]
+            parents_map = graph.get_parent_map([current_rev_id])
         new_history.reverse()
         return new_history
 
@@ -1824,13 +1826,13 @@
         Intended to be called by set_last_revision_info and
         _write_revision_history.
         """
-        if revision_id is None:
-            revision_id = 'null:'
+        assert revision_id is not None, "Use NULL_REVISION, not None"
         out_string = '%d %s\n' % (revno, revision_id)
         self.control_files.put_bytes('last-revision', out_string)
 
     @needs_write_lock
     def set_last_revision_info(self, revno, revision_id):
+        revision_id = _mod_revision.ensure_null(revision_id)
         if self._get_append_revisions_only():
             self._check_history_violation(revision_id)
         self._write_last_revision_info(revno, revision_id)
@@ -1959,6 +1961,14 @@
     def _make_tags(self):
         return BasicTags(self)
 
+    @needs_write_lock
+    def generate_revision_history(self, revision_id, last_rev=None,
+                                  other_branch=None):
+        """See BzrBranch5.generate_revision_history"""
+        history = self._lefthand_history(revision_id, last_rev, other_branch)
+        revno = len(history)
+        self.set_last_revision_info(revno, revision_id)
+
 
 ######################################################################
 # results of operations

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2008-03-04 16:55:41 +0000
+++ b/bzrlib/builtins.py	2008-03-06 18:29:12 +0000
@@ -535,9 +535,13 @@
         if len(names_list) < 2:
             raise errors.BzrCommandError("missing file argument")
         tree, rel_names = tree_files(names_list)
-        
         composite = composite_tree.CompositeTree(tree, tree.branch)
-        if os.path.isdir(names_list[-1]):
+        dest = names_list[-1]
+        isdir = os.path.isdir(dest)
+        if (isdir and not tree.case_sensitive and len(rel_names) == 2
+            and rel_names[0].lower() == rel_names[1].lower()):
+                isdir = False
+        if isdir:
             # move into existing directory
             for pair in composite.move(rel_names[:-1], rel_names[-1],
                                        after=after):
@@ -549,8 +553,8 @@
                                              ' directory')
             composite.rename_one(rel_names[0], rel_names[1], after=after)
             self.outf.write("%s => %s\n" % (rel_names[0], rel_names[1]))
-            
-    
+
+
 class cmd_pull(Command):
     """Turn this branch into a mirror of another branch.
 

=== modified file 'bzrlib/deprecated_graph.py'
--- a/bzrlib/deprecated_graph.py	2007-07-19 07:45:10 +0000
+++ b/bzrlib/deprecated_graph.py	2008-03-01 09:11:39 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005 Canonical Ltd
+# Copyright (C) 2005, 2008 Canonical Ltd
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -15,9 +15,6 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 
-from bzrlib.tsort import topo_sort
-
-
 def max_distance(node, ancestors, distances, root_descendants):
     """Calculate the max distance to an ancestor.  
     Return None if not all possible ancestors have known distances"""
@@ -145,6 +142,7 @@
     def get_ancestry(self, node_id, topo_sorted=True):
         """Return the inclusive ancestors of node_id in topological order."""
         # maybe optimise this ?
+        from bzrlib.tsort import topo_sort
         result = {}
         pending = set([node_id])
         while len(pending):

=== modified file 'bzrlib/dirstate.py'
--- a/bzrlib/dirstate.py	2008-02-28 01:33:35 +0000
+++ b/bzrlib/dirstate.py	2008-03-06 18:21:43 +0000
@@ -1312,7 +1312,12 @@
                         source_path = entry[0][0] + '/' + entry[0][1]
                     else:
                         source_path = entry[0][1]
-                    target_path = new_path_utf8 + source_path[len(old_path):]
+                    if new_path_utf8:
+                        target_path = new_path_utf8 + source_path[len(old_path):]
+                    else:
+                        assert len(old_path) > 0, ("cannot rename directory to"
+                                                   " itself")
+                        target_path = source_path[len(old_path) + 1:]
                     adds.append((None, target_path, entry[0][2], entry[1][1], False))
                     deletes.append(
                         (source_path, target_path, entry[0][2], None, False))

=== modified file 'bzrlib/merge.py'
--- a/bzrlib/merge.py	2008-03-04 16:55:41 +0000
+++ b/bzrlib/merge.py	2008-03-06 18:29:12 +0000
@@ -1083,6 +1083,7 @@
         self.cherrypick = cherrypick
         super(WeaveMerger, self).__init__(working_tree, this_tree, 
                                           base_tree, other_tree, 
+                                          interesting_files=interesting_files,
                                           interesting_ids=interesting_ids, 
                                           pb=pb, pp=pp, reprocess=reprocess,
                                           change_reporter=change_reporter,
@@ -1325,7 +1326,7 @@
             for b_index in range(last_j, j):
                 if b_index in new_b:
                     if b_index in killed_a:
-                        yield 'conflicted-b', self.lines_b[a_index]
+                        yield 'conflicted-b', self.lines_b[b_index]
                     else:
                         yield 'new-b', self.lines_b[b_index]
                 else:

=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2008-02-19 03:58:32 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2008-03-02 17:50:31 +0000
@@ -656,7 +656,7 @@
                 time.ctime(), self._pack_collection._upload_transport.base,
                 self.new_pack.random_name,
                 self.new_pack.inventory_index.key_count(),
-                time.time() - new_pack.start_time)
+                time.time() - self.new_pack.start_time)
 
     def _copy_text_texts(self):
         # select text keys

=== modified file 'bzrlib/tests/blackbox/test_mv.py'
--- a/bzrlib/tests/blackbox/test_mv.py	2008-03-04 16:55:41 +0000
+++ b/bzrlib/tests/blackbox/test_mv.py	2008-03-06 18:29:12 +0000
@@ -24,6 +24,7 @@
     )
 
 from bzrlib.tests import (
+    CaseInsensitiveFilesystemFeature,
     SymlinkFeature,
     TestCaseWithTransport,
     )
@@ -124,7 +125,7 @@
         os.chdir('..')
         self.assertMoved('sub1/sub2/hello.txt','sub1/hello.txt')
 
-    def test_mv_change_case(self):
+    def test_mv_change_case_file(self):
         # test for bug #77740 (mv unable change filename case on Windows)
         tree = self.make_branch_and_tree('.')
         self.build_tree(['test.txt'])
@@ -137,6 +138,41 @@
         self.assertInWorkingTree('Test.txt')
         self.assertNotInWorkingTree('test.txt')
 
+    def test_mv_change_case_dir(self):
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['foo/'])
+        tree.add(['foo'])
+        self.run_bzr('mv foo Foo')
+        # we can't use failUnlessExists on case-insensitive filesystem
+        # so try to check shape of the tree
+        shape = sorted(os.listdir(u'.'))
+        self.assertEqual(['.bzr', 'Foo'], shape)
+        self.assertInWorkingTree('Foo')
+        self.assertNotInWorkingTree('foo')
+
+    def test_mv_change_case_dir_w_files(self):
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['foo/', 'foo/bar'])
+        tree.add(['foo'])
+        self.run_bzr('mv foo Foo')
+        # we can't use failUnlessExists on case-insensitive filesystem
+        # so try to check shape of the tree
+        shape = sorted(os.listdir(u'.'))
+        self.assertEqual(['.bzr', 'Foo'], shape)
+        self.assertInWorkingTree('Foo')
+        self.assertNotInWorkingTree('foo')
+
+    def test_mv_file_to_wrong_case_dir(self):
+        self.requireFeature(CaseInsensitiveFilesystemFeature)
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['foo/', 'bar'])
+        tree.add(['foo', 'bar'])
+        out, err = self.run_bzr('mv bar Foo', retcode=3)
+        self.assertEquals('', out)
+        self.assertEquals(
+            'bzr: ERROR: Could not move to Foo: Foo is not versioned.\n',
+            err)
+
     def test_mv_smoke_aliases(self):
         # just test that aliases for mv exist, if their behaviour is changed in
         # the future, then extend the tests.

=== modified file 'bzrlib/tests/branch_implementations/test_branch.py'
--- a/bzrlib/tests/branch_implementations/test_branch.py	2007-12-11 14:26:18 +0000
+++ b/bzrlib/tests/branch_implementations/test_branch.py	2008-03-04 21:59:33 +0000
@@ -214,6 +214,8 @@
         wt = self.make_branch_and_tree('.')
         wt.set_parent_ids(['non:existent at rev--ision--0--2'],
             allow_leftmost_as_ghost=True)
+        self.assertEqual(['non:existent at rev--ision--0--2'],
+            wt.get_parent_ids())
         rev_id = wt.commit('commit against a ghost first parent.')
         rev = wt.branch.repository.get_revision(rev_id)
         self.assertEqual(rev.parent_ids, ['non:existent at rev--ision--0--2'])

=== modified file 'bzrlib/tests/branch_implementations/test_revision_history.py'
--- a/bzrlib/tests/branch_implementations/test_revision_history.py	2007-08-14 08:38:06 +0000
+++ b/bzrlib/tests/branch_implementations/test_revision_history.py	2008-03-05 10:08:28 +0000
@@ -19,6 +19,7 @@
 from bzrlib import (
     branch,
     errors,
+    revision as _mod_revision,
     )
 from bzrlib.tests.branch_implementations.test_branch import TestCaseWithBranch
 
@@ -139,7 +140,7 @@
         # Lock the branch, set the last revision info, then call
         # last_revision_info.
         a_branch.lock_write()
-        a_branch.set_last_revision_info(0, None)
+        a_branch.set_last_revision_info(0, _mod_revision.NULL_REVISION)
         del calls[:]
         try:
             a_branch.last_revision_info()
@@ -147,6 +148,19 @@
         finally:
             a_branch.unlock()
 
+    def test_set_last_revision_info_none(self):
+        """Passing None to revision_info to None sets it to NULL_REVISION."""
+        a_branch = self.get_branch()
+        # Lock the branch, set the last revision info, then call
+        # last_revision_info.
+        a_branch.lock_write()
+        self.addCleanup(a_branch.unlock)
+        self.callDeprecated(['NULL_REVISION should be used for the null'
+            ' revision instead of None, as of bzr 0.91.'],
+            a_branch.set_last_revision_info, 0, None)
+        self.assertEqual((0, _mod_revision.NULL_REVISION),
+                         a_branch.last_revision_info())
+
     def test_set_last_revision_info_uncaches_revision_history_for_format6(self):
         """On format 6 branches, set_last_revision_info invalidates the revision
         history cache.
@@ -158,7 +172,7 @@
         a_branch.lock_write()
         a_branch.revision_history()
         # Set the last revision info, clearing the cache.
-        a_branch.set_last_revision_info(0, None)
+        a_branch.set_last_revision_info(0, _mod_revision.NULL_REVISION)
         del calls[:]
         try:
             a_branch.revision_history()

=== modified file 'bzrlib/tests/test_merge.py'
--- a/bzrlib/tests/test_merge.py	2008-03-04 16:55:41 +0000
+++ b/bzrlib/tests/test_merge.py	2008-03-06 18:29:12 +0000
@@ -652,11 +652,64 @@
         self.add_version('REV2', ['ROOT'], 'abce')
         # both sides merge, discarding others' changes
         self.add_version('LCA1', ['REV1', 'REV2'], 'abcd')
-        self.add_version('LCA2', ['REV1', 'REV2'], 'abce')
+        self.add_version('LCA2', ['REV1', 'REV2'], 'fabce')
         plan = self.plan_merge_vf.plan_lca_merge('LCA1', 'LCA2')
-        self.assertEqual([('unchanged', 'a\n'),
+        self.assertEqual([('new-b', 'f\n'),
+                          ('unchanged', 'a\n'),
                           ('unchanged', 'b\n'),
                           ('unchanged', 'c\n'),
                           ('conflicted-a', 'd\n'),
                           ('conflicted-b', 'e\n'),
                          ], list(plan))
+
+
+class TestMergeImplementation(object):
+
+    def do_merge(self, target_tree, source_tree, **kwargs):
+        merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
+            target_tree, source_tree.last_revision(),
+            other_branch=source_tree.branch)
+        merger.merge_type=self.merge_type
+        for name, value in kwargs.items():
+            setattr(merger, name, value)
+        merger.do_merge()
+
+    def test_merge_specific_file(self):
+        this_tree = self.make_branch_and_tree('this')
+        this_tree.lock_write()
+        self.addCleanup(this_tree.unlock)
+        self.build_tree_contents([
+            ('this/file1', 'a\nb\n'),
+            ('this/file2', 'a\nb\n')
+        ])
+        this_tree.add(['file1', 'file2'])
+        this_tree.commit('Added files')
+        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
+        self.build_tree_contents([
+            ('other/file1', 'a\nb\nc\n'),
+            ('other/file2', 'a\nb\nc\n')
+        ])
+        other_tree.commit('modified both')
+        self.build_tree_contents([
+            ('this/file1', 'd\na\nb\n'),
+            ('this/file2', 'd\na\nb\n')
+        ])
+        this_tree.commit('modified both')
+        self.do_merge(this_tree, other_tree, interesting_files=['file1'])
+        self.assertFileEqual('d\na\nb\nc\n', 'this/file1')
+        self.assertFileEqual('d\na\nb\n', 'this/file2')
+
+
+class TestMerge3Merge(TestCaseWithTransport, TestMergeImplementation):
+
+    merge_type = _mod_merge.Merge3Merger
+
+
+class TestWeaveMerge(TestCaseWithTransport, TestMergeImplementation):
+
+    merge_type = _mod_merge.WeaveMerger
+
+
+class TestLCAMerge(TestCaseWithTransport, TestMergeImplementation):
+
+    merge_type = _mod_merge.LCAMerger

=== modified file 'bzrlib/tests/test_tsort.py'
--- a/bzrlib/tests/test_tsort.py	2008-01-15 21:42:00 +0000
+++ b/bzrlib/tests/test_tsort.py	2008-02-26 23:04:15 +0000
@@ -21,6 +21,7 @@
 from bzrlib.tests import TestCase
 from bzrlib.tsort import topo_sort, TopoSorter, MergeSorter, merge_sort
 from bzrlib.errors import GraphCycleError
+from bzrlib.revision import NULL_REVISION
 
 
 class TopoSortTests(TestCase):
@@ -112,6 +113,8 @@
         # sorting of an emptygraph does not error
         self.assertSortAndIterate({}, None, [], False)
         self.assertSortAndIterate({}, None, [], True)
+        self.assertSortAndIterate({}, NULL_REVISION, [], False)
+        self.assertSortAndIterate({}, NULL_REVISION, [], True)
 
     def test_merge_sort_not_empty_no_tip(self):
         # merge sorting of a branch starting with None should result

=== modified file 'bzrlib/tests/workingtree_implementations/test_parents.py'
--- a/bzrlib/tests/workingtree_implementations/test_parents.py	2007-10-24 05:47:39 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_parents.py	2008-03-06 18:21:43 +0000
@@ -249,7 +249,7 @@
         self.assertConsistentParents([first_revision, 'second'], tree)
 
 
-class UpdateToOneParentViaDeltaTests(TestParents):
+class UpdateToOneParentViaDeltaTests(TestCaseWithWorkingTree):
     """Tests for the update_basis_by_delta call.
     
     This is intuitively defined as 'apply an inventory delta to the basis and
@@ -514,6 +514,36 @@
         self.assertTransitionFromBasisToShape(basis_shape, old_revid,
             new_shape, new_revid)
 
+    def test_parent_deleted_child_renamed(self):
+        # test a A->None and A/B->A.
+        old_revid = 'old-parent'
+        basis_shape = Inventory(root_id=None)
+        self.add_dir(basis_shape, old_revid, 'root-id', None, '')
+        self.add_dir(basis_shape, old_revid, 'dir-id-A', 'root-id', 'A')
+        self.add_dir(basis_shape, old_revid, 'dir-id-B', 'dir-id-A', 'B')
+        self.add_link(basis_shape, old_revid, 'link-id-C', 'dir-id-B', 'C', 'C')
+        new_revid = 'new-parent'
+        new_shape = Inventory(root_id=None)
+        self.add_new_root(new_shape, old_revid, new_revid)
+        self.add_dir(new_shape, new_revid, 'dir-id-B', 'root-id', 'A')
+        self.add_link(new_shape, old_revid, 'link-id-C', 'dir-id-B', 'C', 'C')
+        self.assertTransitionFromBasisToShape(basis_shape, old_revid,
+            new_shape, new_revid)
+
+    def test_dir_to_root(self):
+        # test a A->''.
+        old_revid = 'old-parent'
+        basis_shape = Inventory(root_id=None)
+        self.add_dir(basis_shape, old_revid, 'root-id', None, '')
+        self.add_dir(basis_shape, old_revid, 'dir-id-A', 'root-id', 'A')
+        self.add_link(basis_shape, old_revid, 'link-id-B', 'dir-id-A', 'B', 'B')
+        new_revid = 'new-parent'
+        new_shape = Inventory(root_id=None)
+        self.add_dir(new_shape, new_revid, 'dir-id-A', None, '')
+        self.add_link(new_shape, old_revid, 'link-id-B', 'dir-id-A', 'B', 'B')
+        self.assertTransitionFromBasisToShape(basis_shape, old_revid,
+            new_shape, new_revid)
+
     def test_path_swap(self):
         # test a A->B and B->A path swap.
         old_revid = 'old-parent'

=== modified file 'bzrlib/tsort.py'
--- a/bzrlib/tsort.py	2008-01-15 21:00:31 +0000
+++ b/bzrlib/tsort.py	2008-03-01 09:11:39 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006 Canonical Ltd
+# Copyright (C) 2005, 2006, 2008 Canonical Ltd
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
 
 
 from bzrlib import errors
+import bzrlib.revision as _mod_revision
 
 
 __all__ = ["topo_sort", "TopoSorter", "merge_sort", "MergeSorter"]
@@ -406,7 +407,8 @@
         self._left_subtree_pushed_stack = []
 
         # seed the search with the tip of the branch
-        if branch_tip is not None:
+        if (branch_tip is not None and
+            branch_tip != _mod_revision.NULL_REVISION):
             parents = self._graph.pop(branch_tip)
             self._push_node(branch_tip, 0, parents)
 

=== modified file 'doc/en/user-guide/resolving_conflicts.txt'
--- a/doc/en/user-guide/resolving_conflicts.txt	2007-12-04 12:56:31 +0000
+++ b/doc/en/user-guide/resolving_conflicts.txt	2008-03-05 10:26:17 +0000
@@ -35,8 +35,8 @@
 each file in question, fixing the relevant areas and removing the
 conflict markers as you go.
 
-After fixing all the files in conflict, ask Bazaar to mark them as
-resolved using the ``resolve`` command like this::
+After fixing all the files in conflict, and removing the markers, 
+ask Bazaar to mark them as resolved using the ``resolve`` command like this::
 
   bzr resolve
 



More information about the bazaar-commits mailing list