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