Rev 3605: Merge to resolve conflicts in NEWS. in http://people.ubuntu.com/~robertc/baz2.0/integration
Robert Collins
robertc at robertcollins.net
Fri Aug 8 06:44:55 BST 2008
At http://people.ubuntu.com/~robertc/baz2.0/integration
------------------------------------------------------------
revno: 3605
revision-id: robertc at robertcollins.net-20080808054444-s4er0rqgs07nbcpv
parent: robertc at robertcollins.net-20080805060140-ckkbituih3srpm06
parent: pqm at pqm.ubuntu.com-20080807005717-qxnuq9je71bt9tcs
committer: Robert Collins <robertc at robertcollins.net>
branch nick: integration
timestamp: Fri 2008-08-08 15:44:44 +1000
message:
Merge to resolve conflicts in NEWS.
added:
bzrlib/tests/test_upgrade_stacked.py test_upgrade_stacked-20080804072225-jd13yami19nskns5-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/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3603.2.10
revision-id: pqm at pqm.ubuntu.com-20080807005717-qxnuq9je71bt9tcs
parent: pqm at pqm.ubuntu.com-20080806224913-zg129xmi6x8045k3
parent: andrew.bennetts at canonical.com-20080807002843-jchnn2ffak6ushpb
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2008-08-07 01:57:17 +0100
message:
Make 'bzr upgrade' work over HPSS. (Andrew Bennetts)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3577.4.3
revision-id: andrew.bennetts at canonical.com-20080807002843-jchnn2ffak6ushpb
parent: andrew.bennetts at canonical.com-20080807002538-mtl1fcgy2fdabha4
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: upgrade-over-hpss
timestamp: Thu 2008-08-07 10:28:43 +1000
message:
Add NEWS entry.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3577.4.2
revision-id: andrew.bennetts at canonical.com-20080807002538-mtl1fcgy2fdabha4
parent: andrew.bennetts at canonical.com-20080725031211-3oirb20ag3xk9i59
parent: pqm at pqm.ubuntu.com-20080806224913-zg129xmi6x8045k3
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: upgrade-over-hpss
timestamp: Thu 2008-08-07 10:25:38 +1000
message:
Merge from bzr.dev.
added:
bzrlib/tests/test_pack_repository.py test_pack_repository-20080801043947-eaw0e6h2gu75kwmy-1
bzrlib/tests/test_upgrade_stacked.py test_upgrade_stacked-20080804072225-jd13yami19nskns5-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/_dirstate_helpers_py.py _dirstate_helpers_py-20070710145033-90nz6cqglsk150jy-1
bzrlib/_patiencediff_py.py cdvdifflib.py-20051106064558-f8f8097fbf0db4e4
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/branchbuilder.py branchbuilder.py-20070427022007-zlxpqz2lannhk6y8-1
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/check.py check.py-20050309040759-f3a679400c06bcc1
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/dirstate.py dirstate.py-20060728012006-d6mvoihjb3je9peu-1
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/export/dir_exporter.py dir_exporter.py-20051114235828-b51397f56bc7b117
bzrlib/export/tar_exporter.py tar_exporter.py-20051114235828-1f6349a2f090a5d0
bzrlib/export/zip_exporter.py zip_exporter.py-20051114235828-8f57f954fba6497e
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/inventory.py inventory.py-20050309040759-6648b84ca2005b37
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
bzrlib/smart/branch.py branch.py-20061124031907-mzh3pla28r83r97f-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_check.py test_check.py-20071024054728-mn44rt3z5hnqcbke-1
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_export.py test_export.py-20051229024010-e6c26658e460fb1c
bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
bzrlib/tests/branch_implementations/test_stacking.py test_stacking.py-20080214020755-msjlkb7urobwly0f-1
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_branchbuilder.py test_branchbuilder.p-20070427022007-zlxpqz2lannhk6y8-2
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_errors.py test_errors.py-20060210110251-41aba2deddf936a8
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_memorytree.py test_memorytree.py-20060906023413-4wlkalbdpsxi2r4y-3
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
bzrlib/tests/test_options.py testoptions.py-20051014093702-96457cfc86319a8f
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_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_tree.py test_tree.py-20060724065232-khgrr0vvmt6ih0mi-1
bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_remove.py test_remove.py-20070413183901-rvnp85rtc0q0sclp-1
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
tools/doc_generate/autodoc_rstx.py autodoc_rstx.py-20060420024836-3e0d4a526452193c
------------------------------------------------------------
revno: 3577.4.1
revision-id: andrew.bennetts at canonical.com-20080725031211-3oirb20ag3xk9i59
parent: pqm at pqm.ubuntu.com-20080724061047-yrvo5cmeik38kibz
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: upgrade-over-hpss
timestamp: Fri 2008-07-25 13:12:11 +1000
message:
Make 'bzr upgrade' work over HPSS.
modified:
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3603.2.9
revision-id: pqm at pqm.ubuntu.com-20080806224913-zg129xmi6x8045k3
parent: pqm at pqm.ubuntu.com-20080806215733-qiem34zrdhgcq8ap
parent: andrew.bennetts at canonical.com-20080805143514-rmx7hxd3mt40fb44
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 23:49:13 +0100
message:
Remove duplicated class definitions and remove unused imports from
pack_repo.py. (Andrew Bennetts)
modified:
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
------------------------------------------------------------
revno: 3603.7.1
revision-id: andrew.bennetts at canonical.com-20080805143514-rmx7hxd3mt40fb44
parent: pqm at pqm.ubuntu.com-20080805011407-wmq7130znc0e6c4x
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: dupe-code
timestamp: Wed 2008-08-06 00:35:14 +1000
message:
Remove duplicated class definitions, remove unused imports.
modified:
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
------------------------------------------------------------
revno: 3603.2.8
revision-id: pqm at pqm.ubuntu.com-20080806215733-qiem34zrdhgcq8ap
parent: pqm at pqm.ubuntu.com-20080806212834-ttevmjkwyafz4qe0
parent: benjamin.peterson at usfamily.net-20080722143227-88mqht2ya0ogb104
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 22:57:33 +0100
message:
(Benjamin Peterson) Document how to rename tags
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
------------------------------------------------------------
revno: 3566.2.2
revision-id: benjamin.peterson at usfamily.net-20080722143227-88mqht2ya0ogb104
parent: benjamin.peterson at usfamily.net-20080721172009-8nrvntbcr7r2nzlk
committer: Benjamin Peterson <benjamin.peterson at usfamily.net>
branch nick: tag-rename-documentation
timestamp: Tue 2008-07-22 09:32:27 -0500
message:
fix markup
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
------------------------------------------------------------
revno: 3566.2.1
revision-id: benjamin.peterson at usfamily.net-20080721172009-8nrvntbcr7r2nzlk
parent: pqm at pqm.ubuntu.com-20080721092720-z0bvnt4ljysbqjis
committer: Benjamin Peterson <benjamin.peterson at usfamily.net>
branch nick: tag-rename-document
timestamp: Mon 2008-07-21 12:20:09 -0500
message:
document how the rename tags
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
------------------------------------------------------------
revno: 3603.2.7
revision-id: pqm at pqm.ubuntu.com-20080806212834-ttevmjkwyafz4qe0
parent: pqm at pqm.ubuntu.com-20080806205754-tyo3u7h84tgr0h9k
parent: john at arbash-meinel.com-20080806203424-6b9o4ijtzupf0bjd
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 22:28:34 +0100
message:
(Christophe Troestler) Add another case for detecting for FileExists
(bug #123475)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
------------------------------------------------------------
revno: 3603.6.1
revision-id: john at arbash-meinel.com-20080806203424-6b9o4ijtzupf0bjd
parent: pqm at pqm.ubuntu.com-20080806085554-9e0l5crd6yv0kxy8
parent: christophe.troestler at umh.ac.be-20080718201920-lvt8l822l4v4qs4z
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: push-sftp
timestamp: Wed 2008-08-06 15:34:24 -0500
message:
Merge Christophe Troestler's fix for SFTP IO Error translation.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
------------------------------------------------------------
revno: 3565.4.2
revision-id: christophe.troestler at umh.ac.be-20080718201920-lvt8l822l4v4qs4z
parent: christophe.troestler at umh.ac.be-20080718195108-0kgfigpaqipeq71e
committer: Christophe Troestler <Christophe.Troestler at umh.ac.be>
branch nick: push-sftp
timestamp: Fri 2008-07-18 22:19:20 +0200
message:
[Bug #123475] Added news entry.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3565.4.1
revision-id: christophe.troestler at umh.ac.be-20080718195108-0kgfigpaqipeq71e
parent: pqm at pqm.ubuntu.com-20080718100017-segv2csk7ux2xs9p
committer: Christophe Troestler <Christophe.Troestler at umh.ac.be>
branch nick: push-sftp
timestamp: Fri 2008-07-18 21:51:08 +0200
message:
[Bug #123475] SFTPTransport._translate_io_exception: better detection
of the `FileExists' case.
modified:
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
------------------------------------------------------------
revno: 3603.2.6
revision-id: pqm at pqm.ubuntu.com-20080806205754-tyo3u7h84tgr0h9k
parent: pqm at pqm.ubuntu.com-20080806085554-9e0l5crd6yv0kxy8
parent: jw+debian at jameswestby.net-20080802161123-70e89xwj0sccql1p
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 21:57:54 +0100
message:
(James Westby) Make TreeTransform.apply() update the WT for kind
changes.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3590.3.5
revision-id: jw+debian at jameswestby.net-20080802161123-70e89xwj0sccql1p
parent: jw+debian at jameswestby.net-20080801161059-xbtyoclmjhaf13qz
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev.transform
timestamp: Sat 2008-08-02 17:11:23 +0100
message:
Use HardlinkFeature for the hardlink test.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
------------------------------------------------------------
revno: 3590.3.4
revision-id: jw+debian at jameswestby.net-20080801161059-xbtyoclmjhaf13qz
parent: jw+debian at jameswestby.net-20080731193813-z0u37e3l0j6u0xyj
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev.transform
timestamp: Fri 2008-08-01 17:10:59 +0100
message:
Add a test for creating hardlinks as well.
Also, don't keep state, but calculate all of the kind changes
at apply time.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3590.3.3
revision-id: jw+debian at jameswestby.net-20080731193813-z0u37e3l0j6u0xyj
parent: jw+debian at jameswestby.net-20080731172238-ba5br3gjk2mjkarb
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev.transform
timestamp: Thu 2008-07-31 20:38:13 +0100
message:
Make ->file changes work as well.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3590.3.2
revision-id: jw+debian at jameswestby.net-20080731172238-ba5br3gjk2mjkarb
parent: jw+debian at jameswestby.net-20080731164241-itsqths2azzc655b
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev.transform
timestamp: Thu 2008-07-31 18:22:38 +0100
message:
Handle ->symlink changes as well.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3590.3.1
revision-id: jw+debian at jameswestby.net-20080731164241-itsqths2azzc655b
parent: pqm at pqm.ubuntu.com-20080729170343-hy20k9g6euzsz04s
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev
timestamp: Thu 2008-07-31 17:42:41 +0100
message:
Make TreeTransform update the inventory with new kind information.
If an entry simply changes kind in a TreeTransform it wouldn't previously
be updated in the inventory, leading to a dirstate that didn't match what
was on disk.
This change makes TreeTransform keep track of kind changes and add an
inventory_delta entry to change the kind of the entry.
It is only implemented for ->directory changes currently.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
------------------------------------------------------------
revno: 3603.2.5
revision-id: pqm at pqm.ubuntu.com-20080806085554-9e0l5crd6yv0kxy8
parent: pqm at pqm.ubuntu.com-20080806073717-dz0d9gglgf8r9996
parent: mbp at sourcefrog.net-20080806082343-6nh1t7rjjpk5dyps
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 09:55:54 +0100
message:
(mbp) start 1.7
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 3603.5.1
revision-id: mbp at sourcefrog.net-20080806082343-6nh1t7rjjpk5dyps
parent: pqm at pqm.ubuntu.com-20080806073717-dz0d9gglgf8r9996
parent: pqm at pqm.ubuntu.com-20080806081305-xvxw50wzvr47315q
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: integration
timestamp: Wed 2008-08-06 18:23:43 +1000
message:
merge back 1.6 and start 1.7
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 3603.4.1
revision-id: pqm at pqm.ubuntu.com-20080806081305-xvxw50wzvr47315q
parent: pqm at pqm.ubuntu.com-20080805202941-gdv30kq4cign8fs4
parent: mbp at sourcefrog.net-20080806073930-d12u94cx6d0w0ctt
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 1.6
timestamp: Wed 2008-08-06 09:13:05 +0100
message:
(mbp) prepare 1.6rc1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 3603.3.2
revision-id: mbp at sourcefrog.net-20080806073930-d12u94cx6d0w0ctt
parent: mbp at sourcefrog.net-20080806070209-08j1bpnnjxqydi09
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: prepare-1.6
timestamp: Wed 2008-08-06 17:39:30 +1000
message:
Prepare 1.6rc1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
------------------------------------------------------------
revno: 3603.2.4
revision-id: pqm at pqm.ubuntu.com-20080806073717-dz0d9gglgf8r9996
parent: pqm at pqm.ubuntu.com-20080805202941-gdv30kq4cign8fs4
parent: mbp at sourcefrog.net-20080806070209-08j1bpnnjxqydi09
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-08-06 08:37:17 +0100
message:
(mbp) merge back NEWS of 1.6b3 release
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3603.3.1
revision-id: mbp at sourcefrog.net-20080806070209-08j1bpnnjxqydi09
parent: pqm at pqm.ubuntu.com-20080805202941-gdv30kq4cign8fs4
parent: mbp at sourcefrog.net-20080717082406-jtexfvbbd0d4eqgv
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: prepare-1.6
timestamp: Wed 2008-08-06 17:02:09 +1000
message:
Merge up news from 1.6b3 and correct misplaced items
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3549.4.2
revision-id: mbp at sourcefrog.net-20080717082406-jtexfvbbd0d4eqgv
parent: mbp at sourcefrog.net-20080717081840-m8fra9sylk1xdsyx
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: prepare-1.6
timestamp: Thu 2008-07-17 18:24:06 +1000
message:
Correct the version number in NEWS
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3549.4.1
revision-id: mbp at sourcefrog.net-20080717081840-m8fra9sylk1xdsyx
parent: mbp at sourcefrog.net-20080717080025-bd9k6gpkkkntipwr
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: prepare-1.6
timestamp: Thu 2008-07-17 18:18:40 +1000
message:
Prepare 1.6b3
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3603.2.3
revision-id: pqm at pqm.ubuntu.com-20080805202941-gdv30kq4cign8fs4
parent: pqm at pqm.ubuntu.com-20080805062143-idm263sn4iw3cmkw
parent: robertc at robertcollins.net-20080718112738-ayyj205j3lo2nve1
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-08-05 21:29:41 +0100
message:
(robertc) Do not generate a revision number map for tags if there are
no tags. (Robert Collins)
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
------------------------------------------------------------
revno: 3553.1.1
revision-id: robertc at robertcollins.net-20080718112738-ayyj205j3lo2nve1
parent: pqm at pqm.ubuntu.com-20080717073312-reglpowwyo671081
committer: Robert Collins <robertc at robertcollins.net>
branch nick: misc-fixen
timestamp: Fri 2008-07-18 21:27:38 +1000
message:
Do not scan history for tags when none are present.
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
------------------------------------------------------------
revno: 3603.2.2
revision-id: pqm at pqm.ubuntu.com-20080805062143-idm263sn4iw3cmkw
parent: pqm at pqm.ubuntu.com-20080805044416-k5w5uuy3l785e7cm
parent: mbp at sourcefrog.net-20080804075541-jka7smxkix7ozvb1
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-08-05 07:21:43 +0100
message:
(mbp) test upgrade with stacking
added:
bzrlib/tests/test_upgrade_stacked.py test_upgrade_stacked-20080804072225-jd13yami19nskns5-1
modified:
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3602.2.2
revision-id: mbp at sourcefrog.net-20080804075541-jka7smxkix7ozvb1
parent: mbp at sourcefrog.net-20080804064759-1vdd56edlca9j2rq
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: stacking
timestamp: Mon 2008-08-04 17:55:41 +1000
message:
Make tests for stacked upgrade scenario-based
added:
bzrlib/tests/test_upgrade_stacked.py test_upgrade_stacked-20080804072225-jd13yami19nskns5-1
modified:
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
------------------------------------------------------------
revno: 3602.2.1
revision-id: mbp at sourcefrog.net-20080804064759-1vdd56edlca9j2rq
parent: pqm at pqm.ubuntu.com-20080804032751-myaykx8azatkvlf8
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: stacking
timestamp: Mon 2008-08-04 16:47:59 +1000
message:
Fix and test for problem upgrading stacked branches
modified:
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3603.2.1
revision-id: pqm at pqm.ubuntu.com-20080805044416-k5w5uuy3l785e7cm
parent: pqm at pqm.ubuntu.com-20080805011407-wmq7130znc0e6c4x
parent: robertc at robertcollins.net-20080805041043-6krwcxp2ebhzbumy
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-08-05 05:44:16 +0100
message:
(robertc) Further tweaks to tests and comments in the commit excludes
feature. (Robert Collins, Andrew Bennetts)
modified:
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
------------------------------------------------------------
revno: 3603.1.1
revision-id: robertc at robertcollins.net-20080805041043-6krwcxp2ebhzbumy
parent: pqm at pqm.ubuntu.com-20080805011407-wmq7130znc0e6c4x
committer: Robert Collins <robertc at robertcollins.net>
branch nick: integration
timestamp: Tue 2008-08-05 14:10:43 +1000
message:
Further tweaks to tests and comments in the commit excludes feature.
modified:
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
=== modified file 'NEWS'
--- a/NEWS 2008-08-05 06:01:40 +0000
+++ b/NEWS 2008-08-08 05:44:44 +0000
@@ -4,20 +4,44 @@
.. contents::
-
IN DEVELOPMENT
--------------
CHANGES:
+ IMPROVEMENTS:
+
+ BUG FIXES:
+
+ * ``bzr upgrade`` on remote branches accessed via bzr:// and
+ bzr+ssh:// now works. (Andrew Bennetts)
+
+ * sftp transport: added missing ``FileExists`` case to
+ ``_translate_io_exception`` (Christophe Troestler, #123475)
+
+ * The help for ``bzr ignored`` now suggests ``bzr ls --ignored`` for
+ scripting use. (Robert Collins, #3834)
+
+ API CHANGES:
+
+ INTERNALS:
+
+
+bzr 1.6rc1 2008-08-06
+---------------------
+
+This release candidate for bzr 1.6 solidifies the new branch stacking
+feature. Bazaar now recommends that users upgrade all knit repositories,
+because later formats are much faster. However, we plan to continue read/write and
+upgrade support for knit repostories for the forseeable future. Several
+other bugs and performance issues were fixed.
+
+ CHANGES:
+
* Knit format repositories are deprecated and bzr will now emit
warnings whenever it encounters one. Use ``bzr upgrade`` to upgrade
knit repositories to pack format. (Andrew Bennetts)
-
- FEATURES:
-
-
IMPROVEMENTS:
* ``bzr check`` can now be told which elements at a location it should
@@ -26,6 +50,10 @@
* Commit now supports ``--exclude`` (or ``-x``) to exclude some files
from the commit. (Robert Collins, #3117)
+ * Fetching data between repositories that have the same model but no
+ optimised fetcher will not reserialise all the revisions, increasing
+ performance. (Robert Collins, John Arbash Meinel)
+
* Give a more specific error when target branch is not reachable.
(James Westby)
@@ -37,9 +65,9 @@
Anywhere from 2x-6x faster depending on the size of the tree (bigger
trees, bigger benefit.) (John Arbash Meinel)
- * Fetching data between repositories that have the same model but no
- optimised fetcher will not reserialise all the revisions, increasing
- performance. (Robert Collins, John Arbash Meinel)
+ * New registry for log properties handles and the method in
+ LongLogFormatter to display the custom properties returned by the
+ registered handlers. (Guillermo Gonzalez, #162469)
BUG FIXES:
@@ -57,6 +85,15 @@
* ``bzr export`` no longer exports ``.bzrrules``.
(Ian Clatworthy)
+ * ``bzr serve --directory=/`` now correctly allows the whole
+ filesystem to be accessed on Windows, not just the root of the drive
+ that Python is running from.
+ (Adrian Wilkins, #240910)
+
+ * Deleting directories by hand before running ``bzr rm`` will not
+ cause subsequent errors in ``bzr st`` and ``bzr commit``.
+ (Robert Collins, #150438)
+
* Fix a test case that was failing if encoding wasn't UTF-8.
(John Arbash Meinel, #247585)
@@ -64,18 +101,11 @@
smart server protocol to or from Windows.
(Andrew Bennetts, #246180)
- * Deleting directories by hand before running ``bzr rm`` will not
- cause subsequent errors in ``bzr st`` and ``bzr commit``.
- (Robert Collins, #150438)
-
- * The help for ``bzr ignored`` now sugests ``bzr ls --ignored`` for
- scripting use. (Robert Collins, #3834)
-
- DOCUMENTATION:
-
-
- TESTING:
-
+ * Fixed problem in branching from smart server.
+ (#249256, Michael Hudson, Martin Pool)
+
+ * Handle a file turning in to a directory in TreeTransform.
+ (James Westby, #248448)
API CHANGES:
@@ -106,7 +136,6 @@
file when locked. And during probe, locking the repo isn't very
useful. (John Arbash Meinel)
-
INTERNALS:
* ``bzrlib.branchbuilder.BranchBuilder`` is now much more capable of
@@ -133,6 +162,12 @@
bzr 1.6beta3 2008-07-17
-----------------------
+This release adds a new 'stacked branches' feature allowing branches to
+share storage without being in the same repository or on the same machine.
+(See the user guide for more details.) It also adds a new hook, improved
+weaves, aliases for related locations, faster bzr+ssh push, and several
+bug fixes.
+
FEATURES:
* New ``pre_change_branch_tip`` hook that is called before the
@@ -149,7 +184,9 @@
* Sites may suggest a branch to stack new branches on. (Aaron Bentley)
* Stacked branches are now supported. See ``bzr help branch`` and
- ``bzr help push``. (Robert Collins)
+ ``bzr help push``. Branches must be in the ``development1`` format
+ to stack, though the stacked-on branch can be of any format.
+ (Robert Collins)
IMPROVEMENTS:
@@ -173,10 +210,6 @@
revision info directly. This makes operations like push
faster. The new request method name is
``Branch.set_last_revision_ex``. (Andrew Bennetts)
-
- * New registry for log properties handles and the method in
- LongLogFormatter to display the custom properties returned by the
- registered handlers. (Guillermo Gonzalez, #162469)
BUG FIXES:
@@ -193,11 +226,6 @@
requires a branch to be present.
(Daniel Watkins, #64783)
- * ``bzr serve --directory=/`` now correctly allows the whole
- filesystem to be accessed on Windows, not just the root of the drive
- that Python is running from.
- (Adrian Wilkins, #240910)
-
* Clearer message about how to set the PYTHONPATH if bzrlib can't be
loaded.
(Martin Pool, #205230)
@@ -207,9 +235,6 @@
still in ``.bzr.log`` and can be shown with ``-Derror``.
(Martin Pool, #240161)
- * Fixed problem in branching from smart server.
- (#249256, Michael Hudson, Martin Pool)
-
* Fetch from a stacked branch copies all required data.
(Aaron Bentley, #248506)
@@ -239,9 +264,6 @@
* Set locale from environment for third party libs.
(Martin von Gagern, #128496)
- * Handle a file turning in to a directory in TreeTransform.
- (James Westby, #248448)
-
DOCUMENTATION:
* Added *Using stacked branches* to the User Guide.
=== modified file 'bzr'
--- a/bzr 2008-07-03 10:44:34 +0000
+++ b/bzr 2008-08-06 08:23:43 +0000
@@ -22,7 +22,7 @@
import sys
# update this on each release
-_script_version = (1, 6, 0)
+_script_version = (1, 7, 0)
if __doc__ is None:
print "bzr does not support python -OO."
=== modified file 'bzrlib/__init__.py'
--- a/bzrlib/__init__.py 2008-08-04 22:41:18 +0000
+++ b/bzrlib/__init__.py 2008-08-06 08:23:43 +0000
@@ -41,7 +41,7 @@
# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a
# releaselevel of 'dev' for unreleased under-development code.
-version_info = (1, 6, 0, 'beta', 4)
+version_info = (1, 7, 0, 'dev', 0)
# API compatibility version: bzrlib is currently API compatible with 1.6.
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2008-08-05 06:01:40 +0000
+++ b/bzrlib/builtins.py 2008-08-08 05:44:44 +0000
@@ -4323,6 +4323,9 @@
It is an error to give a tag name that already exists unless you pass
--force, in which case the tag is moved to point to the new revision.
+
+ To rename a tag (change the name but keep it on the same revsion), run ``bzr
+ tag new-name -r tag:old-name`` and then ``bzr tag --delete oldname``.
"""
_see_also = ['commit', 'tags']
@@ -4400,6 +4403,8 @@
):
branch, relpath = Branch.open_containing(directory)
tags = branch.tags.get_tag_dict().items()
+ if not tags:
+ return
if sort == 'alpha':
tags.sort()
elif sort == 'time':
=== modified file 'bzrlib/commit.py'
--- a/bzrlib/commit.py 2008-08-04 22:07:34 +0000
+++ b/bzrlib/commit.py 2008-08-05 04:10:43 +0000
@@ -758,8 +758,8 @@
# the path has a deleted parent, do not add it.
continue
if exclude and is_inside_any(exclude, path):
- # Skip - it is to be considered by the final copy-from-basis
- # step.
+ # Skip excluded paths. Excluded paths are processed by
+ # _update_builder_with_changes.
continue
content_summary = self.work_tree.path_content_summary(path)
# Note that when a filter of specific files is given, we must only
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py 2008-07-28 06:08:42 +0000
+++ b/bzrlib/repofmt/pack_repo.py 2008-08-05 14:35:14 +0000
@@ -17,16 +17,16 @@
from bzrlib.lazy_import import lazy_import
lazy_import(globals(), """
from itertools import izip
-import math
import md5
import time
from bzrlib import (
- debug,
- graph,
- pack,
- ui,
- )
+ debug,
+ graph,
+ pack,
+ transactions,
+ ui,
+ )
from bzrlib.index import (
GraphIndex,
GraphIndexBuilder,
@@ -41,8 +41,6 @@
_DirectPackAccess,
)
from bzrlib.osutils import rand_chars, split_lines
-from bzrlib.pack import ContainerWriter
-from bzrlib.store import revision
from bzrlib import tsort
""")
from bzrlib import (
@@ -50,30 +48,23 @@
errors,
lockable_files,
lockdir,
- osutils,
symbol_versioning,
- transactions,
xml5,
xml6,
xml7,
)
-from bzrlib.decorators import needs_read_lock, needs_write_lock
+from bzrlib.decorators import needs_write_lock
from bzrlib.repofmt.knitrepo import KnitRepository
from bzrlib.repository import (
CommitBuilder,
- InterRepository,
- MetaDirRepository,
MetaDirRepositoryFormat,
RepositoryFormat,
RootCommitBuilder,
)
import bzrlib.revision as _mod_revision
-from bzrlib.store.versioned import VersionedFileStore
from bzrlib.trace import (
mutter,
- mutter_callsite,
- note,
warning,
)
@@ -1819,7 +1810,6 @@
raise errors.ReadOnlyError(self)
self._write_lock_count += 1
if self._write_lock_count == 1:
- from bzrlib import transactions
self._transaction = transactions.WriteTransaction()
for repo in self._fallback_repositories:
# Writes don't affect fallback repos
@@ -1980,103 +1970,6 @@
pass
-class RepositoryFormatPack(MetaDirRepositoryFormat):
- """Format logic for pack structured repositories.
-
- This repository format has:
- - a list of packs in pack-names
- - packs in packs/NAME.pack
- - indices in indices/NAME.{iix,six,tix,rix}
- - knit deltas in the packs, knit indices mapped to the indices.
- - thunk objects to support the knits programming API.
- - a format marker of its own
- - an optional 'shared-storage' flag
- - an optional 'no-working-trees' flag
- - a LockDir lock
- """
-
- # Set this attribute in derived classes to control the repository class
- # created by open and initialize.
- repository_class = None
- # Set this attribute in derived classes to control the
- # _commit_builder_class that the repository objects will have passed to
- # their constructor.
- _commit_builder_class = None
- # Set this attribute in derived clases to control the _serializer that the
- # repository objects will have passed to their constructor.
- _serializer = None
- # External references are not supported in pack repositories yet.
- supports_external_lookups = False
-
- def initialize(self, a_bzrdir, shared=False):
- """Create a pack based repository.
-
- :param a_bzrdir: bzrdir to contain the new repository; must already
- be initialized.
- :param shared: If true the repository will be initialized as a shared
- repository.
- """
- mutter('creating repository in %s.', a_bzrdir.transport.base)
- dirs = ['indices', 'obsolete_packs', 'packs', 'upload']
- builder = GraphIndexBuilder()
- files = [('pack-names', builder.finish())]
- utf8_files = [('format', self.get_format_string())]
-
- self._upload_blank_content(a_bzrdir, dirs, files, utf8_files, shared)
- return self.open(a_bzrdir=a_bzrdir, _found=True)
-
- def open(self, a_bzrdir, _found=False, _override_transport=None):
- """See RepositoryFormat.open().
-
- :param _override_transport: INTERNAL USE ONLY. Allows opening the
- repository at a slightly different url
- than normal. I.e. during 'upgrade'.
- """
- if not _found:
- format = RepositoryFormat.find_format(a_bzrdir)
- if _override_transport is not None:
- repo_transport = _override_transport
- else:
- repo_transport = a_bzrdir.get_repository_transport(None)
- control_files = lockable_files.LockableFiles(repo_transport,
- 'lock', lockdir.LockDir)
- return self.repository_class(_format=self,
- a_bzrdir=a_bzrdir,
- control_files=control_files,
- _commit_builder_class=self._commit_builder_class,
- _serializer=self._serializer)
-
-
-class RepositoryFormatKnitPack1(RepositoryFormatPack):
- """A no-subtrees parameterized Pack repository.
-
- This format was introduced in 0.92.
- """
-
- repository_class = KnitPackRepository
- _commit_builder_class = PackCommitBuilder
- _serializer = xml5.serializer_v5
-
- def _get_matching_bzrdir(self):
- return bzrdir.format_registry.make_bzrdir('pack-0.92')
-
- def _ignore_setting_bzrdir(self, format):
- pass
-
- _matchingbzrdir = property(_get_matching_bzrdir, _ignore_setting_bzrdir)
-
- def get_format_string(self):
- """See RepositoryFormat.get_format_string()."""
- return "Bazaar pack repository format 1 (needs bzr 0.92)\n"
-
- def get_format_description(self):
- """See RepositoryFormat.get_format_description()."""
- return "Packs containing knits without subtree support"
-
- def check_conversion_target(self, target_format):
- pass
-
-
class RepositoryFormatKnitPack3(RepositoryFormatPack):
"""A subtrees parameterized Pack repository.
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2008-08-01 04:40:30 +0000
+++ b/bzrlib/tests/__init__.py 2008-08-04 07:55:41 +0000
@@ -2815,6 +2815,7 @@
'bzrlib.tests.test_ui',
'bzrlib.tests.test_uncommit',
'bzrlib.tests.test_upgrade',
+ 'bzrlib.tests.test_upgrade_stacked',
'bzrlib.tests.test_urlutils',
'bzrlib.tests.test_versionedfile',
'bzrlib.tests.test_version',
=== modified file 'bzrlib/tests/test_repository.py'
--- a/bzrlib/tests/test_repository.py 2008-08-01 04:40:30 +0000
+++ b/bzrlib/tests/test_repository.py 2008-08-04 07:55:41 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2007 Canonical Ltd
+# Copyright (C) 2006, 2007, 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
=== modified file 'bzrlib/tests/test_transform.py'
--- a/bzrlib/tests/test_transform.py 2008-07-22 20:37:43 +0000
+++ b/bzrlib/tests/test_transform.py 2008-08-02 16:11:23 +0000
@@ -1219,6 +1219,7 @@
wt = self.make_branch_and_tree('.')
self.build_tree(['foo'])
wt.add(['foo'])
+ wt.commit("one")
tt = TreeTransform(wt)
self.addCleanup(tt.finalize)
foo_trans_id = tt.trans_id_tree_path("foo")
@@ -1229,6 +1230,74 @@
tt.version_file("bar-1", bar_trans_id)
tt.apply()
self.failUnlessExists("foo/bar")
+ wt.lock_read()
+ try:
+ self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
+ "directory")
+ finally:
+ wt.unlock()
+ wt.commit("two")
+ changes = wt.changes_from(wt.basis_tree())
+ self.assertFalse(changes.has_changed(), changes)
+
+ def test_file_to_symlink(self):
+ self.requireFeature(SymlinkFeature)
+ wt = self.make_branch_and_tree('.')
+ self.build_tree(['foo'])
+ wt.add(['foo'])
+ wt.commit("one")
+ tt = TreeTransform(wt)
+ self.addCleanup(tt.finalize)
+ foo_trans_id = tt.trans_id_tree_path("foo")
+ tt.delete_contents(foo_trans_id)
+ tt.create_symlink("bar", foo_trans_id)
+ tt.apply()
+ self.failUnlessExists("foo")
+ wt.lock_read()
+ self.addCleanup(wt.unlock)
+ self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
+ "symlink")
+
+ def test_dir_to_file(self):
+ wt = self.make_branch_and_tree('.')
+ self.build_tree(['foo/', 'foo/bar'])
+ wt.add(['foo', 'foo/bar'])
+ wt.commit("one")
+ tt = TreeTransform(wt)
+ self.addCleanup(tt.finalize)
+ foo_trans_id = tt.trans_id_tree_path("foo")
+ bar_trans_id = tt.trans_id_tree_path("foo/bar")
+ tt.delete_contents(foo_trans_id)
+ tt.delete_versioned(bar_trans_id)
+ tt.create_file(["aa\n"], foo_trans_id)
+ tt.apply()
+ self.failUnlessExists("foo")
+ wt.lock_read()
+ self.addCleanup(wt.unlock)
+ self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
+ "file")
+
+ def test_dir_to_hardlink(self):
+ self.requireFeature(HardlinkFeature)
+ wt = self.make_branch_and_tree('.')
+ self.build_tree(['foo/', 'foo/bar'])
+ wt.add(['foo', 'foo/bar'])
+ wt.commit("one")
+ tt = TreeTransform(wt)
+ self.addCleanup(tt.finalize)
+ foo_trans_id = tt.trans_id_tree_path("foo")
+ bar_trans_id = tt.trans_id_tree_path("foo/bar")
+ tt.delete_contents(foo_trans_id)
+ tt.delete_versioned(bar_trans_id)
+ self.build_tree(['baz'])
+ tt.create_hardlink("baz", foo_trans_id)
+ tt.apply()
+ self.failUnlessExists("foo")
+ self.failUnlessExists("baz")
+ wt.lock_read()
+ self.addCleanup(wt.unlock)
+ self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
+ "file")
class TransformGroup(object):
=== added file 'bzrlib/tests/test_upgrade_stacked.py'
--- a/bzrlib/tests/test_upgrade_stacked.py 1970-01-01 00:00:00 +0000
+++ b/bzrlib/tests/test_upgrade_stacked.py 2008-08-04 07:55:41 +0000
@@ -0,0 +1,90 @@
+# Copyright (C) 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+"""Tests for upgrades of various stacking situations."""
+
+from bzrlib import (
+ bzrdir,
+ errors,
+ tests,
+ )
+from bzrlib.upgrade import upgrade
+
+
+class TestStackUpgrade(tests.TestCaseWithTransport):
+ # TODO: This should possibly be repeated for all stacking repositories,
+ # pairwise by rich/non-rich format; should possibly also try other kinds
+ # of upgrades like knit->pack. -- mbp 20080804
+
+ def test_stack_upgrade(self):
+ """Correct checks when stacked-on repository is upgraded.
+
+ We initially stack on a repo with the same rich root support,
+ we then upgrade it and should fail, we then upgrade the overlaid
+ repository.
+ """
+ base = self.make_branch_and_tree('base',
+ format=self.scenario_old_format)
+ self.build_tree(['base/foo'])
+ base.commit('base commit')
+ # make another one stacked
+ stacked = base.bzrdir.sprout('stacked', stacked=True)
+ # this must really be stacked (or get_stacked_on_url raises an error)
+ self.assertTrue(stacked.open_branch().get_stacked_on_url())
+ # now we'll upgrade the underlying branch, then upgrade the stacked
+ # branch, and this should still work.
+ new_format = bzrdir.format_registry.make_bzrdir(
+ self.scenario_new_format)
+ upgrade('base', new_format)
+ # in some cases you'll get an error if the underlying model has
+ # changed; if just the data format has changed this should still work
+ if self.scenario_model_change:
+ self.assertRaises(errors.IncompatibleRepositories,
+ stacked.open_branch)
+ else:
+ stacked.open_branch().check()
+ stacked = bzrdir.BzrDir.open('stacked')
+ # but we can upgrade the stacked repository
+ upgrade('stacked', new_format)
+ # and now it's ok
+ stacked = bzrdir.BzrDir.open('stacked')
+ stacked.open_branch().check()
+
+
+def load_tests(basic_tests, module, test_loader):
+ """Generate dynamic scenario tests.
+
+ Called by the bzrlib test framework.
+ """
+ scenario_pairs = [ # old format, new format, model_change
+# ('knit', 'rich-root', True),
+ ('knit', '1.6', False),
+# ('pack-0.92', '1.6', False),
+ ('1.6', '1.6-rich-root', True),
+ ]
+ scenarios = []
+ for (old_name, new_name, model_change) in scenario_pairs:
+ name = old_name + ', ' + new_name
+ scenarios.append((name,
+ dict(scenario_old_format=old_name,
+ scenario_new_format=new_name,
+ scenario_model_change=model_change)))
+ adapter = tests.TestScenarioApplier()
+ adapter.scenarios = scenarios
+ suite = tests.TestSuite()
+ tests.adapt_tests(basic_tests, adapter, suite)
+ return suite
=== modified file 'bzrlib/tests/workingtree_implementations/test_commit.py'
--- a/bzrlib/tests/workingtree_implementations/test_commit.py 2008-08-05 00:06:19 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_commit.py 2008-08-05 04:10:43 +0000
@@ -233,7 +233,7 @@
tree = self.make_branch_and_tree('.')
self.build_tree(['a/', 'a/b'])
tree.smart_add(['.'])
- tree.commit('test', exclude=['a/b'])
+ tree.commit('test', specific_files=['a'], exclude=['a/b'])
# If a/b was excluded it will still be 'added' in status.
tree.lock_read()
self.addCleanup(tree.unlock)
=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py 2008-07-22 20:21:43 +0000
+++ b/bzrlib/transform.py 2008-08-01 16:10:59 +0000
@@ -1217,10 +1217,10 @@
mover = _mover
try:
child_pb.update('Apply phase', 0, 2)
- self._apply_removals(new_inventory_delta, mover)
+ kind_changes = self._apply_removals(new_inventory_delta, mover)
child_pb.update('Apply phase', 1, 2)
modified_paths = self._apply_insertions(new_inventory_delta,
- mover)
+ mover, kind_changes)
except:
mover.rollback()
raise
@@ -1244,6 +1244,7 @@
"""
tree_paths = list(self._tree_path_ids.iteritems())
tree_paths.sort(reverse=True)
+ kind_changes = set()
child_pb = bzrlib.ui.ui_factory.nested_progress_bar()
try:
for num, data in enumerate(tree_paths):
@@ -1251,6 +1252,12 @@
child_pb.update('removing file', num, len(tree_paths))
full_path = self._tree.abspath(path)
if trans_id in self._removed_contents:
+ try:
+ if (self.tree_kind(trans_id)
+ != self.final_kind(trans_id)):
+ kind_changes.add(trans_id)
+ except NoSuchFile:
+ pass
mover.pre_delete(full_path, os.path.join(self._deletiondir,
trans_id))
elif trans_id in self._new_name or trans_id in \
@@ -1274,8 +1281,9 @@
inventory_delta.append((path, None, file_id, None))
finally:
child_pb.finished()
+ return kind_changes
- def _apply_insertions(self, inventory_delta, mover):
+ def _apply_insertions(self, inventory_delta, mover, kind_changes):
"""Perform tree operations that insert directory/inventory names.
That is, create any files that need to be created, and restore from
@@ -1284,6 +1292,9 @@
If inventory_delta is None, no inventory delta is calculated, and
no list of modified paths is returned.
+
+ kind_changes is a set of trans ids where the entry has changed
+ kind, and so an inventory delta entry should be created for them.
"""
new_paths = self.new_paths(filesystem_only=(inventory_delta is None))
modified_paths = []
@@ -1320,7 +1331,8 @@
if file_id is not None and (trans_id in self._new_id or
trans_id in self._new_name or
trans_id in self._new_parent
- or trans_id in self._new_executability):
+ or trans_id in self._new_executability
+ or trans_id in kind_changes):
try:
kind = self.final_kind(trans_id)
except NoSuchFile:
=== modified file 'bzrlib/transport/remote.py'
--- a/bzrlib/transport/remote.py 2008-06-18 01:03:51 +0000
+++ b/bzrlib/transport/remote.py 2008-07-25 03:12:11 +0000
@@ -421,9 +421,6 @@
def disconnect(self):
self.get_smart_medium().disconnect()
- def delete_tree(self, relpath):
- raise errors.TransportNotPossible('readonly transport')
-
def stat(self, relpath):
resp = self._call2('stat', self._remote_path(relpath))
if resp[0] == 'stat':
=== modified file 'bzrlib/transport/sftp.py'
--- a/bzrlib/transport/sftp.py 2008-07-09 09:36:41 +0000
+++ b/bzrlib/transport/sftp.py 2008-07-18 19:51:08 +0000
@@ -584,7 +584,8 @@
if (e.args == ('No such file or directory',) or
e.args == ('No such file',)):
raise NoSuchFile(path, str(e) + more_info)
- if (e.args == ('mkdir failed',)):
+ if (e.args == ('mkdir failed',) or
+ e.args[0].startswith('syserr: File exists')):
raise FileExists(path, str(e) + more_info)
# strange but true, for the paramiko server.
if (e.args == ('Failure',)):
=== modified file 'bzrlib/upgrade.py'
--- a/bzrlib/upgrade.py 2008-03-14 21:31:15 +0000
+++ b/bzrlib/upgrade.py 2008-08-07 00:25:38 +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
@@ -21,6 +21,7 @@
from bzrlib.bzrdir import ConvertBzrDir4To5, ConvertBzrDir5To6, BzrDir, BzrDirFormat4, BzrDirFormat5, BzrDirFormat
import bzrlib.errors as errors
+from bzrlib.remote import RemoteBzrDir
from bzrlib.transport import get_transport
import bzrlib.ui as ui
@@ -30,6 +31,9 @@
def __init__(self, url, format):
self.format = format
self.bzrdir = BzrDir.open_unsupported(url)
+ if isinstance(self.bzrdir, RemoteBzrDir):
+ self.bzrdir._ensure_real()
+ self.bzrdir = self.bzrdir._real_bzrdir
if self.bzrdir.root_transport.is_readonly():
raise errors.UpgradeReadonly
self.transport = self.bzrdir.root_transport
@@ -47,12 +51,15 @@
self.pb.note("This is a checkout. The branch (%s) needs to be "
"upgraded separately.",
branch.bzrdir.root_transport.base)
- except errors.NotBranchError:
+ del branch
+ except (errors.NotBranchError, errors.IncompatibleRepositories):
+ # might not be a format we can open without upgrading; see e.g.
+ # https://bugs.launchpad.net/bzr/+bug/253891
pass
if not self.bzrdir.needs_format_conversion(self.format):
raise errors.UpToDateFormat(self.bzrdir._format)
if not self.bzrdir.can_convert_format():
- raise errors.BzrError("cannot upgrade from branch format %s" %
+ raise errors.BzrError("cannot upgrade from bzrdir format %s" %
self.bzrdir._format)
if self.format is None:
target_format = BzrDirFormat.get_default_format()
More information about the bazaar-commits
mailing list