Rev 3208: merge bzr.dev in file:///v/home/vila/src/bzr/experimental/selftest/

Vincent Ladeuil v.ladeuil+lp at free.fr
Mon Feb 4 09:29:42 GMT 2008


At file:///v/home/vila/src/bzr/experimental/selftest/

------------------------------------------------------------
revno: 3208
revision-id:v.ladeuil+lp at free.fr-20080204092935-dt55mpdyvbyjvu3h
parent: v.ladeuil+lp at free.fr-20080130113401-3pcgxfcl4sndy7p6
parent: pqm at pqm.ubuntu.com-20080201053934-q32y2nk5vvo13c6v
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: selftest
timestamp: Mon 2008-02-04 10:29:35 +0100
message:
  merge bzr.dev
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
  bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
  bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
  bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
  bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
  bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
  bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
  bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
  bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
  bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
  bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
  bzrlib/tests/test_nonascii.py  testnonascii.py-20051018022645-ea1d8b6477b058a6
  bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
    ------------------------------------------------------------
    revno: 3193.1.18
    revision-id:pqm at pqm.ubuntu.com-20080201053934-q32y2nk5vvo13c6v
    parent: pqm at pqm.ubuntu.com-20080201034612-xl88s8i45res3pm2
    parent: robertc at robertcollins.net-20080201040133-7gc0fxqh3b8ot84x
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Fri 2008-02-01 05:39:34 +0000
    message:
      (robertc) Fix register-branch for launchpad beta group team members
      	and teach it to use the public location of the current branch
      	by default. (Robert Collins)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
      bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
      bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
      bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
        ------------------------------------------------------------
        revno: 3193.16.5
        revision-id:robertc at robertcollins.net-20080201040133-7gc0fxqh3b8ot84x
        parent: robertc at robertcollins.net-20080201035953-zxrnzhnb1xv0nolj
        parent: pqm at pqm.ubuntu.com-20080130212051-utcw5p2zydlq6ntb
        committer: Robert Collins <robertc at robertcollins.net>
        branch nick: register-branch.public_location
        timestamp: Fri 2008-02-01 15:01:33 +1100
        message:
          Merge bzr.dev to resolve conflicts with register-branch NEWS items.
        removed:
          bzrlib/plugins/multiparent.py  mpregen-20070411063203-5x9z7i73add0d6f6-1
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
          bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
          bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
          bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
          bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
          bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
          bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
          bzrlib/plugin.py               plugin.py-20050622060424-829b654519533d69
          bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
          bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
          bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
          bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
          bzrlib/tests/blackbox/test_outside_wt.py test_outside_wt.py-20060116200058-98edd33e7db8bdde
          bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
          bzrlib/tests/test_diff.py      testdiff.py-20050727164403-d1a3496ebb12e339
          bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
          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_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
          bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
          bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
          bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
        ------------------------------------------------------------
        revno: 3193.16.4
        revision-id:robertc at robertcollins.net-20080201035953-zxrnzhnb1xv0nolj
        parent: robertc at robertcollins.net-20080125115256-1bayb034r2wtbbs4
        committer: Robert Collins <robertc at robertcollins.net>
        branch nick: register-branch.public_location
        timestamp: Fri 2008-02-01 14:59:53 +1100
        message:
          Update NEWS.
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
        ------------------------------------------------------------
        revno: 3193.16.3
        revision-id:robertc at robertcollins.net-20080125115256-1bayb034r2wtbbs4
        parent: robertc at robertcollins.net-20080125110632-0tp2cjae2ol63zuq
        committer: Robert Collins <robertc at robertcollins.net>
        branch nick: register-branch.public_location
        timestamp: Fri 2008-01-25 22:52:56 +1100
        message:
          Tweak wording.
        modified:
          bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
        ------------------------------------------------------------
        revno: 3193.16.2
        revision-id:robertc at robertcollins.net-20080125110632-0tp2cjae2ol63zuq
        parent: robertc at robertcollins.net-20080125104610-4qweeqqch2feyxdv
        committer: Robert Collins <robertc at robertcollins.net>
        branch nick: register-branch.public_location
        timestamp: Fri 2008-01-25 22:06:32 +1100
        message:
           * The launchpad plugin now uses the ``edge`` xmlrpc server to avoid
             interacting badly with a bug on the launchpad side. (Robert Collins)
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
          bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
        ------------------------------------------------------------
        revno: 3193.16.1
        revision-id:robertc at robertcollins.net-20080125104610-4qweeqqch2feyxdv
        parent: pqm at pqm.ubuntu.com-20080124050323-gsgsp2em7v1ugtnz
        committer: Robert Collins <robertc at robertcollins.net>
        branch nick: register-branch.public_location
        timestamp: Fri 2008-01-25 21:46:10 +1100
        message:
           * The ``register-branch`` command will now use the public url of the branch
             containing the current directory, if one has been set and no explicit branch is provided.
             (Robert Collins)
          
           * New error ``NoPublicBranch`` for commands that need a public branch to
             operate. (Robert Collins)
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
          bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
          bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
          bzrlib/plugins/launchpad/test_register.py test_register.py-20060315182712-40f5dda945c829a8
          bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
    ------------------------------------------------------------
    revno: 3193.1.17
    revision-id:pqm at pqm.ubuntu.com-20080201034612-xl88s8i45res3pm2
    parent: pqm at pqm.ubuntu.com-20080130212051-utcw5p2zydlq6ntb
    parent: ian.clatworthy at internode.on.net-20080201003033-7r914kfv5m53o5o4
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Fri 2008-02-01 03:46:12 +0000
    message:
      Make pull --quiet more quiet (James Westby)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
        ------------------------------------------------------------
        revno: 3193.15.1
        revision-id:ian.clatworthy at internode.on.net-20080201003033-7r914kfv5m53o5o4
        parent: pqm at pqm.ubuntu.com-20080130212051-utcw5p2zydlq6ntb
        parent: jw+debian at jameswestby.net-20080129201228-bf02rkx5o95wd1c9
        committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
        branch nick: ianc-integration
        timestamp: Fri 2008-02-01 10:30:33 +1000
        message:
          Make pull --quiet more quiet (James Westby)
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
          bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
          bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
          bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
          bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
        ------------------------------------------------------------
        revno: 3193.14.2
        revision-id:jw+debian at jameswestby.net-20080129201228-bf02rkx5o95wd1c9
        parent: jw+debian at jameswestby.net-20080128214616-9l1gs91fgnk41wex
        committer: James Westby <jw+debian at jameswestby.net>
        branch nick: bzr.dev.jw
        timestamp: Tue 2008-01-29 20:12:28 +0000
        message:
          Check that the pull succeeds even when printing nothing.
        modified:
          bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
        ------------------------------------------------------------
        revno: 3193.14.1
        revision-id:jw+debian at jameswestby.net-20080128214616-9l1gs91fgnk41wex
        parent: pqm at pqm.ubuntu.com-20080124050323-gsgsp2em7v1ugtnz
        committer: James Westby <jw+debian at jameswestby.net>
        branch nick: bzr.dev.jw
        timestamp: Mon 2008-01-28 21:46:16 +0000
        message:
          Make pull --quiet more quiet. Fixes #185907.
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
          bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
          bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
          bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
          bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
    ------------------------------------------------------------
    revno: 3193.1.16
    revision-id:pqm at pqm.ubuntu.com-20080130212051-utcw5p2zydlq6ntb
    parent: pqm at pqm.ubuntu.com-20080130194701-iykyel7v3q52qsol
    parent: john at arbash-meinel.com-20080130184147-l30omu7r7cln13at
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Wed 2008-01-30 21:20:51 +0000
    message:
      (jam) Optimize 'annotate' code path
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
        ------------------------------------------------------------
        revno: 3180.2.4
        revision-id:john at arbash-meinel.com-20080130184147-l30omu7r7cln13at
        parent: john at arbash-meinel.com-20080130181142-mmgn0wrdvxu38ba5
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: optim_annotate
        timestamp: Wed 2008-01-30 12:41:47 -0600
        message:
          NEWS
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
        ------------------------------------------------------------
        revno: 3180.2.3
        revision-id:john at arbash-meinel.com-20080130181142-mmgn0wrdvxu38ba5
        parent: john at arbash-meinel.com-20080130181024-fu7u323c9paee4n5
        parent: pqm at pqm.ubuntu.com-20080130100306-p0uqnxt3hodnyiej
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: optim_annotate
        timestamp: Wed 2008-01-30 12:11:42 -0600
        message:
          [merge] bzr.dev 3207
        removed:
          bzrlib/plugins/multiparent.py  mpregen-20070411063203-5x9z7i73add0d6f6-1
        added:
          doc/en/user-guide/revnos.txt   revnos.txt-20080111231928-pbntxea0ynh9ww1t-1
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzr                            bzr.py-20050313053754-5485f144c7006fa6
          bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
          bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
          bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
          bzrlib/commands.py             bzr.py-20050309040720-d10f4714595cf8c3
          bzrlib/debug.py                debug.py-20061102062349-vdhrw9qdpck8cl35-1
          bzrlib/doc/api/__init__.py     __init__.py-20051224020744-7b87d590843855bc
          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/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
          bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
          bzrlib/plugin.py               plugin.py-20050622060424-829b654519533d69
          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/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/status.py               status.py-20050505062338-431bfa63ec9b19e6
          bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
          bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
          bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
          bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
          bzrlib/tests/blackbox/test_outside_wt.py test_outside_wt.py-20060116200058-98edd33e7db8bdde
          bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
          bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
          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_diff.py      testdiff.py-20050727164403-d1a3496ebb12e339
          bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
          bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
          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_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_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
          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_tsort.py     testtsort.py-20051025073946-27da871c394d5be4
          bzrlib/trace.py                trace.py-20050309040759-c8ed824bdcd4748a
          bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
          bzrlib/transport/remote.py     ssh.py-20060608202016-c25gvf1ob7ypbus6-1
          bzrlib/tsort.py                tsort.py-20051025073946-7808f6aaf7d07208
          doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
          doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
          doc/en/user-guide/index.txt    index.txt-20060622101119-tgwtdci8z769bjb9-2
        ------------------------------------------------------------
        revno: 3180.2.2
        revision-id:john at arbash-meinel.com-20080130181024-fu7u323c9paee4n5
        parent: john at arbash-meinel.com-20080124225422-atibw1m93vdmtjw9
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: optim_annotate
        timestamp: Wed 2008-01-30 12:10:24 -0600
        message:
          Fix typo, (thanks Ian)
        modified:
          bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
        ------------------------------------------------------------
        revno: 3180.2.1
        revision-id:john at arbash-meinel.com-20080124225422-atibw1m93vdmtjw9
        parent: pqm at pqm.ubuntu.com-20080115003405-jfuumkpctmvl2e4r
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: optim_annotate
        timestamp: Thu 2008-01-24 16:54:22 -0600
        message:
          Change reannotate to special case the 2-parent case.
          This allows a few cheap optimizations which saves a lot of time for annotate.
        modified:
          bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
    ------------------------------------------------------------
    revno: 3193.1.15
    revision-id:pqm at pqm.ubuntu.com-20080130194701-iykyel7v3q52qsol
    parent: pqm at pqm.ubuntu.com-20080130100306-p0uqnxt3hodnyiej
    parent: john at arbash-meinel.com-20080130180731-oq4t83eju0t15wzq
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Wed 2008-01-30 19:47:01 +0000
    message:
      (jam, #185458) Switch from NFKC => NFC for normalization checks.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/tests/test_nonascii.py  testnonascii.py-20051018022645-ea1d8b6477b058a6
      bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
    ------------------------------------------------------------
    revno: 3193.13.3
    revision-id:john at arbash-meinel.com-20080130180731-oq4t83eju0t15wzq
    parent: john at arbash-meinel.com-20080128224125-d88zoykrfspon9z5
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: nfc
    timestamp: Wed 2008-01-30 12:07:31 -0600
    message:
      NEWS
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3193.13.2
    revision-id:john at arbash-meinel.com-20080128224125-d88zoykrfspon9z5
    parent: jameinel at samus-20080128165952-nqybfnus41chsd4x
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: nfc
    timestamp: Mon 2008-01-28 16:41:25 -0600
    message:
      Test needs to be updated now that µ is allowed.
    modified:
      bzrlib/tests/workingtree_implementations/test_rename_one.py test_rename_one.py-20070226161242-2d8ibdedl700jgio-1
    ------------------------------------------------------------
    revno: 3193.13.1
    revision-id:jameinel at samus-20080128165952-nqybfnus41chsd4x
    parent: pqm at pqm.ubuntu.com-20080125195940-iwy2onaiiges6k4t
    committer: jameinel <jameinel at SAMUS>
    branch nick: nfc
    timestamp: Mon 2008-01-28 10:59:52 -0600
    message:
      Fix bug #185458, switch from NFKC to NFC and add tests for filenames that would be broken under NFKC
    modified:
      bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/tests/test_nonascii.py  testnonascii.py-20051018022645-ea1d8b6477b058a6
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-01-30 08:20:23 +0000
+++ b/NEWS	2008-02-01 05:39:34 +0000
@@ -43,6 +43,14 @@
     * The ``--coverage`` option is now global, rather specific to ``bzr
       selftest``.  (Andrew Bennetts)
 
+    * The ``register-branch`` command will now use the public url of the branch
+      containing the current directory, if one has been set and no explicit
+      branch is provided.  (Robert Collins)
+
+    * Tweak the ``reannotate`` code path to optimize the 2-parent case.
+      Speeds up ``bzr annotate`` with a pack repository by approx 3:2.
+      (John Arbash Meinel)
+
   BUGFIXES:
 
     * Calculate remote path relative to the shared medium in _SmartClient.  This
@@ -54,18 +62,29 @@
     * List possible values for BZR_SSH environment variable in env-variables
       help topic. (Alexander Belchenko, #181842)
 
+    * pull --quiet is now more quiet, in particular a message is no longer
+      printed when the remembered pull location is used. (James Westby,
+      #185907)
+
     * ``reconfigure`` can safely be interrupted while fetching.
       (Aaron Bentley, #179316)
 
     * ``reconfigure`` preserves tags when converting to and from lightweight
       checkouts.  (Aaron Bentley, #182040)
 
+    * Stop polluting /tmp when running selftest.
+      (Vincent Ladeuil, #123623)
+
+    * Switch from NFKC => NFC for normalization checks. NFC allows a few
+      more characters which should be considered valid.
+      (John Arbash Meinel, #185458)
+
+    * The launchpad plugin now uses the ``edge`` xmlrpc server to avoid
+      interacting badly with a bug on the launchpad side. (Robert Collins)
+
     * Unknown hostnames when connecting to a ``bzr://`` URL no longer cause
       tracebacks.  (Andrew Bennetts, #182849)
 
-    * Stop polluting /tmp when running selftest.
-      (Vincent Ladeuil, #123623)
-
   API BREAKS:
 
     * Classes implementing Merge types like Merge3Merger must now accept (and
@@ -98,6 +117,9 @@
       ``InterRepository.search_missing_revision_ids`` which returns a 
       ``bzrlib.graph.SearchResult`` suitable for making requests from the smart
       server. (Robert Collins)
+
+    * New error ``NoPublicBranch`` for commands that need a public branch to
+      operate. (Robert Collins)
  
     * New method ``iter_inventories`` on Repository for access to many
       inventories. This is primarily used by the ``revision_trees`` method, as

=== modified file 'bzrlib/annotate.py'
--- a/bzrlib/annotate.py	2007-11-21 21:57:11 +0000
+++ b/bzrlib/annotate.py	2008-01-30 18:10:24 +0000
@@ -168,25 +168,48 @@
         the SequenceMatcher.get_matching_blocks format.
     """
     if len(parents_lines) == 0:
-        for line in new_lines:
-            yield new_revision_id, line
+        lines = [(new_revision_id, line) for line in new_lines]
     elif len(parents_lines) == 1:
-        for data in _reannotate(parents_lines[0], new_lines, new_revision_id,
-                                _left_matching_blocks):
-            yield data
+        lines = _reannotate(parents_lines[0], new_lines, new_revision_id,
+                            _left_matching_blocks)
+    elif len(parents_lines) == 2:
+        left = _reannotate(parents_lines[0], new_lines, new_revision_id,
+                           _left_matching_blocks)
+        right = _reannotate(parents_lines[1], new_lines, new_revision_id)
+        lines = []
+        for idx in xrange(len(new_lines)):
+            if left[idx][0] == right[idx][0]:
+                # The annotations match, just return the left one
+                lines.append(left[idx])
+            elif left[idx][0] == new_revision_id:
+                # The left parent claims a new value, return the right one
+                lines.append(right[idx])
+            elif right[idx][0] == new_revision_id:
+                # The right parent claims a new value, return the left one
+                lines.append(left[idx])
+            else:
+                # Both claim different origins
+                lines.append((new_revision_id, left[idx][1]))
     else:
-        block_list = [_left_matching_blocks] + [None] * len(parents_lines)
-        reannotations = [list(_reannotate(p, new_lines, new_revision_id, b))
-                         for p, b in zip(parents_lines, block_list)]
+        reannotations = [_reannotate(parents_lines[0], new_lines,
+                                     new_revision_id, _left_matching_blocks)]
+        reannotations.extend(_reannotate(p, new_lines, new_revision_id)
+                             for p in parents_lines[1:])
+        lines = []
         for annos in zip(*reannotations):
             origins = set(a for a, l in annos)
-            line = annos[0][1]
             if len(origins) == 1:
-                yield iter(origins).next(), line
-            elif len(origins) == 2 and new_revision_id in origins:
-                yield (x for x in origins if x != new_revision_id).next(), line
+                # All the parents agree, so just return the first one
+                lines.append(annos[0])
             else:
-                yield new_revision_id, line
+                line = annos[0][1]
+                if len(origins) == 2 and new_revision_id in origins:
+                    origins.remove(new_revision_id)
+                if len(origins) == 1:
+                    lines.append((origins.pop(), line))
+                else:
+                    lines.append((new_revision_id, line))
+    return lines
 
 
 def _reannotate(parent_lines, new_lines, new_revision_id,
@@ -197,9 +220,10 @@
         matcher = patiencediff.PatienceSequenceMatcher(None,
             plain_parent_lines, new_lines)
         matching_blocks = matcher.get_matching_blocks()
+    lines = []
     for i, j, n in matching_blocks:
         for line in new_lines[new_cur:j]:
-            yield new_revision_id, line
-        for data in parent_lines[i:i+n]:
-            yield data
+            lines.append((new_revision_id, line))
+        lines.extend(parent_lines[i:i+n])
         new_cur = j + n
+    return lines

=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py	2007-12-20 14:28:59 +0000
+++ b/bzrlib/branch.py	2008-01-28 21:46:16 +0000
@@ -62,7 +62,7 @@
                                       zero_eight, zero_nine, zero_sixteen,
                                       zero_ninetyone,
                                       )
-from bzrlib.trace import mutter, mutter_callsite, note
+from bzrlib.trace import mutter, mutter_callsite, note, is_quiet
 
 
 BZR_BRANCH_FORMAT_4 = "Bazaar-NG branch, format 0.0.4\n"
@@ -2129,10 +2129,11 @@
         return self.new_revno - self.old_revno
 
     def report(self, to_file):
-        if self.old_revid == self.new_revid:
-            to_file.write('No revisions to pull.\n')
-        else:
-            to_file.write('Now on revision %d.\n' % self.new_revno)
+        if not is_quiet():
+            if self.old_revid == self.new_revid:
+                to_file.write('No revisions to pull.\n')
+            else:
+                to_file.write('Now on revision %d.\n' % self.new_revno)
         self._show_tag_conficts(to_file)
 
 

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2008-01-30 08:15:25 +0000
+++ b/bzrlib/builtins.py	2008-02-01 00:30:33 +0000
@@ -610,7 +610,8 @@
             else:
                 display_url = urlutils.unescape_for_display(stored_loc,
                         self.outf.encoding)
-                self.outf.write("Using saved location: %s\n" % display_url)
+                if not is_quiet():
+                    self.outf.write("Using saved location: %s\n" % display_url)
                 location = stored_loc
                 location_transport = transport.get_transport(
                     location, possible_transports=possible_transports)

=== modified file 'bzrlib/delta.py'
--- a/bzrlib/delta.py	2007-10-24 02:33:14 +0000
+++ b/bzrlib/delta.py	2008-01-28 21:46:16 +0000
@@ -19,7 +19,7 @@
     osutils,
     )
 from bzrlib.inventory import InventoryEntry
-from bzrlib.trace import mutter
+from bzrlib.trace import mutter, is_quiet
 from bzrlib.symbol_versioning import deprecated_function
 
 
@@ -314,6 +314,8 @@
         :param kind: A pair of file kinds, as generated by Tree._iter_changes.
             None indicates no file present.
         """
+        if is_quiet():
+            return
         if paths[1] == '' and versioned == 'added' and self.suppress_root_add:
             return
         if versioned == 'unversioned':

=== modified file 'bzrlib/errors.py'
--- a/bzrlib/errors.py	2008-01-11 05:08:20 +0000
+++ b/bzrlib/errors.py	2008-01-25 10:46:10 +0000
@@ -267,6 +267,16 @@
         "record_entry_contents.")
 
 
+class NoPublicBranch(BzrError):
+
+    _fmt = 'There is no public branch set for "%(branch_url)s".'
+
+    def __init__(self, branch):
+        import bzrlib.urlutils as urlutils
+        public_location = urlutils.unescape_for_display(branch.base, 'ascii')
+        BzrError.__init__(self, branch_url=public_location)
+
+
 class NoHelpTopic(BzrError):
 
     _fmt = ("No help could be found for '%(topic)s'. "

=== modified file 'bzrlib/inventory.py'
--- a/bzrlib/inventory.py	2007-12-18 18:25:12 +0000
+++ b/bzrlib/inventory.py	2008-01-28 16:59:52 +0000
@@ -1422,7 +1422,7 @@
 
     :raises InvalidNormalization: When name is not normalized, and cannot be
         accessed on this platform by the normalized path.
-    :return: The NFC/NFKC normalised version of name.
+    :return: The NFC normalised version of name.
     """
     #------- This has been copied to bzrlib.dirstate.DirState.add, please
     # keep them synchronised.

=== modified file 'bzrlib/merge.py'
--- a/bzrlib/merge.py	2008-01-05 23:01:50 +0000
+++ b/bzrlib/merge.py	2008-01-28 21:46:16 +0000
@@ -47,7 +47,7 @@
 from progress import DummyProgress, ProgressPhase
 from bzrlib.revision import (NULL_REVISION, ensure_null)
 from bzrlib.textfile import check_text_lines
-from bzrlib.trace import mutter, warning, note
+from bzrlib.trace import mutter, warning, note, is_quiet
 from bzrlib.transform import (TransformPreview, TreeTransform,
                               resolve_conflicts, cook_conflicts,
                               conflict_pass, FinalPaths, create_by_entry,
@@ -439,7 +439,7 @@
                 self.base_tree.unlock()
             self.this_tree.unlock()
         if len(merge.cooked_conflicts) == 0:
-            if not self.ignore_zero:
+            if not self.ignore_zero and not is_quiet():
                 note("All changes applied successfully.")
         else:
             note("%d conflicts encountered." % len(merge.cooked_conflicts))

=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py	2007-12-27 08:25:04 +0000
+++ b/bzrlib/osutils.py	2008-01-28 16:59:52 +0000
@@ -360,7 +360,7 @@
 
 
 def _mac_getcwd():
-    return unicodedata.normalize('NFKC', os.getcwdu())
+    return unicodedata.normalize('NFC', os.getcwdu())
 
 
 # Default is to just use the python builtins, but these can be rebound on
@@ -1014,20 +1014,20 @@
     On platforms where the system does not normalize filenames 
     (Windows, Linux), you have to access a file by its exact path.
 
-    Internally, bzr only supports NFC/NFKC normalization, since that is 
+    Internally, bzr only supports NFC normalization, since that is 
     the standard for XML documents.
 
     So return the normalized path, and a flag indicating if the file
     can be accessed by that path.
     """
 
-    return unicodedata.normalize('NFKC', unicode(path)), True
+    return unicodedata.normalize('NFC', unicode(path)), True
 
 
 def _inaccessible_normalized_filename(path):
     __doc__ = _accessible_normalized_filename.__doc__
 
-    normalized = unicodedata.normalize('NFKC', unicode(path))
+    normalized = unicodedata.normalize('NFC', unicode(path))
     return normalized, normalized == path
 
 

=== modified file 'bzrlib/plugins/launchpad/__init__.py'
--- a/bzrlib/plugins/launchpad/__init__.py	2007-11-27 00:50:43 +0000
+++ b/bzrlib/plugins/launchpad/__init__.py	2008-01-25 11:52:56 +0000
@@ -21,7 +21,9 @@
 
 # see http://bazaar-vcs.org/Specs/BranchRegistrationTool
 
+from bzrlib.branch import Branch
 from bzrlib.commands import Command, Option, register_command
+from bzrlib.errors import BzrCommandError, NoPublicBranch, NotBranchError
 from bzrlib.transport import register_lazy_transport
 from bzrlib.help_topics import topic_registry
 
@@ -37,15 +39,19 @@
     branch belongs, and create an account for yourself on launchpad.net.
 
     arguments:
-        branch_url: The publicly visible url for the branch.
-                    This must be an http or https url, not a local file
-                    path.
+        public_url: The publicly visible url for the branch to register.
+                    This must be an http or https url (which Launchpad can read
+                    from to access the branch). Local file urls, SFTP urls, and
+                    bzr+ssh urls will not work.
+                    If no public_url is provided, bzr will use the configured
+                    public_url if there is one for the current branch, and
+                    otherwise error.
 
     example:
         bzr register-branch http://foo.com/bzr/fooproduct.mine \\
                 --product fooproduct
     """
-    takes_args = ['branch_url']
+    takes_args = ['public_url?']
     takes_options = [
          Option('product',
                 'Launchpad product short name to associate with the branch.',
@@ -71,8 +77,8 @@
         ]
 
 
-    def run(self, 
-            branch_url, 
+    def run(self,
+            public_url=None,
             product='',
             branch_name='',
             branch_title='',
@@ -83,14 +89,24 @@
         from bzrlib.plugins.launchpad.lp_registration import (
             LaunchpadService, BranchRegistrationRequest, BranchBugLinkRequest,
             DryRunLaunchpadService)
-        rego = BranchRegistrationRequest(branch_url=branch_url,
+        if public_url is None:
+            try:
+                b = Branch.open_containing('.')[0]
+            except NotBranchError:
+                raise BzrCommandError('register-branch requires a public '
+                    'branch url - see bzr help register-branch.')
+            public_url = b.get_public_branch()
+            if public_url is None:
+                raise NoPublicBranch(b)
+
+        rego = BranchRegistrationRequest(branch_url=public_url,
                                          branch_name=branch_name,
                                          branch_title=branch_title,
                                          branch_description=branch_description,
                                          product_name=product,
                                          author_email=author,
                                          )
-        linko = BranchBugLinkRequest(branch_url=branch_url,
+        linko = BranchBugLinkRequest(branch_url=public_url,
                                      bug_id=link_bug)
         if not dry_run:
             service = LaunchpadService()

=== modified file 'bzrlib/plugins/launchpad/lp_registration.py'
--- a/bzrlib/plugins/launchpad/lp_registration.py	2007-11-14 15:03:18 +0000
+++ b/bzrlib/plugins/launchpad/lp_registration.py	2008-01-25 11:06:32 +0000
@@ -40,7 +40,11 @@
 
     # NB: this should always end in a slash to avoid xmlrpclib appending
     # '/RPC2'
-    DEFAULT_SERVICE_URL = 'https://xmlrpc.launchpad.net/bazaar/'
+    # We use edge because:
+    # Beta users get redirected to it
+    # All users can use it
+    # There is a bug in the launchpad side where redirection causes an OOPS.
+    DEFAULT_SERVICE_URL = 'https://xmlrpc.edge.launchpad.net/bazaar/'
 
     transport = None
     registrant_email = None
@@ -180,7 +184,7 @@
                  author_email='',
                  product_name='',
                  ):
-        assert branch_url
+        assert branch_url, 'branch_url %r is invalid' % branch_url
         self.branch_url = branch_url
         if branch_name:
             self.branch_name = branch_name

=== modified file 'bzrlib/plugins/launchpad/test_register.py'
--- a/bzrlib/plugins/launchpad/test_register.py	2007-11-14 15:03:18 +0000
+++ b/bzrlib/plugins/launchpad/test_register.py	2008-01-25 11:06:32 +0000
@@ -26,7 +26,7 @@
     tests,
     ui,
     )
-from bzrlib.tests import TestCase, TestSkipped
+from bzrlib.tests import TestCaseWithTransport, TestSkipped
 
 # local import
 from bzrlib.plugins.launchpad.lp_registration import (
@@ -129,7 +129,7 @@
         self.called_authenticated = authenticated
 
 
-class TestBranchRegistration(TestCase):
+class TestBranchRegistration(TestCaseWithTransport):
     SAMPLE_URL = 'http://bazaar-vcs.org/bzr/bzr.dev/'
     SAMPLE_OWNER = 'jhacker at foo.com'
     SAMPLE_BRANCH_ID = 'bzr.dev'
@@ -144,9 +144,26 @@
         out, err = self.run_bzr(['register-branch', '--help'])
         self.assertContainsRe(out, r'Register a branch')
 
-    def test_register_no_url(self):
+    def test_register_no_url_no_branch(self):
         """register-branch command requires parameters"""
-        self.run_bzr('register-branch', retcode=3)
+        self.make_repository('.')
+        self.run_bzr_error(
+            ['register-branch requires a public branch url - '
+             'see bzr help register-branch'],
+            'register-branch')
+
+    def test_register_no_url_in_published_branch_no_error(self):
+        b = self.make_branch('.')
+        b.set_public_branch('http://test-server.com/bzr/branch')
+        out, err = self.run_bzr(['register-branch', '--dry-run'])
+        self.assertEqual('Branch registered.\n', out)
+        self.assertEqual('', err)
+
+    def test_register_no_url_in_unpublished_branch_errors(self):
+        b = self.make_branch('.')
+        out, err = self.run_bzr_error(['no public branch'],
+            ['register-branch', '--dry-run'])
+        self.assertEqual('', out)
 
     def test_register_dry_run(self):
         out, err = self.run_bzr(['register-branch',
@@ -168,7 +185,7 @@
                 'author at launchpad.net',
                 'product')
         rego.submit(service)
-        self.assertEquals(transport.connected_host, 'xmlrpc.launchpad.net')
+        self.assertEquals(transport.connected_host, 'xmlrpc.edge.launchpad.net')
         self.assertEquals(len(transport.sent_params), 6)
         self.assertEquals(transport.sent_params,
                 ('http://test-server.com/bzr/branch',  # branch_url
@@ -185,7 +202,7 @@
         service = LaunchpadService(transport)
         resolve = ResolveLaunchpadPathRequest('bzr')
         resolve.submit(service)
-        self.assertEquals(transport.connected_host, 'xmlrpc.launchpad.net')
+        self.assertEquals(transport.connected_host, 'xmlrpc.edge.launchpad.net')
         self.assertEquals(len(transport.sent_params), 1)
         self.assertEquals(transport.sent_params, ('bzr', ))
         self.assertTrue(transport.got_request)

=== modified file 'bzrlib/tests/blackbox/test_pull.py'
--- a/bzrlib/tests/blackbox/test_pull.py	2007-08-21 13:52:55 +0000
+++ b/bzrlib/tests/blackbox/test_pull.py	2008-01-29 20:12:28 +0000
@@ -305,3 +305,22 @@
         self.assertContainsRe(out, 'bar')
         self.assertNotContainsRe(out, 'added:')
         self.assertNotContainsRe(out, 'foo')
+
+    def test_pull_quiet(self):
+        """Check that bzr pull --quiet does not print anything"""
+        tree_a = self.make_branch_and_tree('tree_a')
+        self.build_tree(['tree_a/foo'])
+        tree_a.add('foo')
+        revision_id = tree_a.commit('bar')
+        tree_b = tree_a.bzrdir.sprout('tree_b').open_workingtree()
+        out, err = self.run_bzr('pull --quiet -d tree_b')
+        self.assertEqual(out, '')
+        self.assertEqual(err, '')
+        self.assertEqual(tree_b.last_revision(), revision_id)
+        self.build_tree(['tree_a/moo'])
+        tree_a.add('moo')
+        revision_id = tree_a.commit('quack')
+        out, err = self.run_bzr('pull --quiet -d tree_b')
+        self.assertEqual(out, '')
+        self.assertEqual(err, '')
+        self.assertEqual(tree_b.last_revision(), revision_id)

=== modified file 'bzrlib/tests/test_errors.py'
--- a/bzrlib/tests/test_errors.py	2008-01-02 03:08:59 +0000
+++ b/bzrlib/tests/test_errors.py	2008-01-25 10:46:10 +0000
@@ -22,6 +22,7 @@
     bzrdir,
     errors,
     symbol_versioning,
+    urlutils,
     )
 from bzrlib.tests import TestCase, TestCaseWithTransport
 
@@ -121,7 +122,14 @@
         error = errors.MediumNotConnected("a medium")
         self.assertEqualDiff(
             "The medium 'a medium' is not connected.", str(error))
-        
+ 
+    def test_no_public_branch(self):
+        b = self.make_branch('.')
+        error = errors.NoPublicBranch(b)
+        url = urlutils.unescape_for_display(b.base, 'ascii')
+        self.assertEqualDiff(
+            'There is no public branch set for "%s".' % url, str(error))
+
     def test_no_repo(self):
         dir = bzrdir.BzrDir.create(self.get_url())
         error = errors.NoRepositoryPresent(dir)

=== modified file 'bzrlib/tests/test_nonascii.py'
--- a/bzrlib/tests/test_nonascii.py	2006-12-22 08:52:28 +0000
+++ b/bzrlib/tests/test_nonascii.py	2008-01-28 16:59:52 +0000
@@ -46,18 +46,26 @@
 a_dots_d = u'a\u0308'
 z_umlat_c = u'\u017d'
 z_umlat_d = u'Z\u030c'
+squared_c = u'\xbc' # This gets mapped to '2' if we use NFK[CD]
+squared_d = u'\xbc'
+quarter_c = u'\xb2' # Gets mapped to u'1\u20444' (1/4) if we use NFK[CD]
+quarter_d = u'\xb2'
 
 
 class TestNormalization(TestCase):
     """Verify that we have our normalizations correct."""
 
     def test_normalize(self):
-        self.assertEqual(a_circle_d, normalize('NFKD', a_circle_c))
-        self.assertEqual(a_circle_c, normalize('NFKC', a_circle_d))
-        self.assertEqual(a_dots_d, normalize('NFKD', a_dots_c))
-        self.assertEqual(a_dots_c, normalize('NFKC', a_dots_d))
-        self.assertEqual(z_umlat_d, normalize('NFKD', z_umlat_c))
-        self.assertEqual(z_umlat_c, normalize('NFKC', z_umlat_d))
+        self.assertEqual(a_circle_d, normalize('NFD', a_circle_c))
+        self.assertEqual(a_circle_c, normalize('NFC', a_circle_d))
+        self.assertEqual(a_dots_d, normalize('NFD', a_dots_c))
+        self.assertEqual(a_dots_c, normalize('NFC', a_dots_d))
+        self.assertEqual(z_umlat_d, normalize('NFD', z_umlat_c))
+        self.assertEqual(z_umlat_c, normalize('NFC', z_umlat_d))
+        self.assertEqual(squared_d, normalize('NFC', squared_c))
+        self.assertEqual(squared_c, normalize('NFD', squared_d))
+        self.assertEqual(quarter_d, normalize('NFC', quarter_c))
+        self.assertEqual(quarter_c, normalize('NFD', quarter_d))
 
 
 class NormalizedFilename(TestCaseWithTransport):
@@ -74,6 +82,10 @@
         self.assertEqual((a_dots_c, True), anf(a_dots_d))
         self.assertEqual((z_umlat_c, True), anf(z_umlat_c))
         self.assertEqual((z_umlat_c, True), anf(z_umlat_d))
+        self.assertEqual((squared_c, True), anf(squared_c))
+        self.assertEqual((squared_c, True), anf(squared_d))
+        self.assertEqual((quarter_c, True), anf(quarter_c))
+        self.assertEqual((quarter_c, True), anf(quarter_d))
 
     def test__inaccessible_normalized_filename(self):
         inf = osutils._inaccessible_normalized_filename
@@ -86,6 +98,10 @@
         self.assertEqual((a_dots_c, False), inf(a_dots_d))
         self.assertEqual((z_umlat_c, True), inf(z_umlat_c))
         self.assertEqual((z_umlat_c, False), inf(z_umlat_d))
+        self.assertEqual((squared_c, True), inf(squared_c))
+        self.assertEqual((squared_c, True), inf(squared_d))
+        self.assertEqual((quarter_c, True), inf(quarter_c))
+        self.assertEqual((quarter_c, True), inf(quarter_d))
 
     def test_functions(self):
         if osutils.normalizes_filenames():
@@ -121,7 +137,8 @@
         # a_circle_c and a_dots_c actually map to the same file
         # adding a suffix kicks in the 'preserving but insensitive'
         # route, and maintains the right files
-        files = [a_circle_c+'.1', a_dots_c+'.2', z_umlat_c+'.3']
+        files = [a_circle_c+'.1', a_dots_c+'.2', z_umlat_c+'.3',
+                 squared_c+'.4', quarter_c+'.5']
         try:
             self.build_tree(files, line_endings='native')
         except UnicodeError:

=== modified file 'bzrlib/tests/workingtree_implementations/test_rename_one.py'
--- a/bzrlib/tests/workingtree_implementations/test_rename_one.py	2007-09-17 05:33:56 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_rename_one.py	2008-01-28 22:41:25 +0000
@@ -314,4 +314,4 @@
         self.build_tree(['a'])
         tree.add(['a'])
         self.assertRaises((errors.InvalidNormalization, UnicodeEncodeError),
-            tree.rename_one, 'a', u'b\xb5rry')
+            tree.rename_one, 'a', u'ba\u030arry')



More information about the bazaar-commits mailing list