Rev 2742: Merge bzr.dev. in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Mon Aug 27 00:30:59 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2742
revision-id: robertc at robertcollins.net-20070826233047-j65jjkr08zzy6zn5
parent: robertc at robertcollins.net-20070826020611-4y80los70jgigih3
parent: pqm at pqm.ubuntu.com-20070825182243-a3w20rpadbfz8euc
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Mon 2007-08-27 09:30:47 +1000
message:
Merge bzr.dev.
added:
doc/developers/update.txt update.txt-20070713074325-vtxf9eb5c6keg30j-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.3
revision-id: pqm at pqm.ubuntu.com-20070825182243-a3w20rpadbfz8euc
parent: pqm at pqm.ubuntu.com-20070824133750-r25v5g25g1flggy6
parent: jelmer at samba.org-20070825173724-64idwjskji8ms9y6
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sat 2007-08-25 19:22:43 +0100
message:
Add performance analysis of update.txt
added:
doc/developers/update.txt update.txt-20070713074325-vtxf9eb5c6keg30j-1
------------------------------------------------------------
revno: 2592.1.24.1.3
revision-id: jelmer at samba.org-20070825173724-64idwjskji8ms9y6
parent: jelmer at samba.org-20070809165127-g691bl34j2wle9gn
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: doc-update
timestamp: Sat 2007-08-25 19:37:24 +0200
message:
Fix typo, right complexity for applying changes to files.
modified:
doc/developers/update.txt update.txt-20070713074325-vtxf9eb5c6keg30j-1
------------------------------------------------------------
revno: 2592.1.24.1.2
revision-id: jelmer at samba.org-20070809165127-g691bl34j2wle9gn
parent: jelmer at samba.org-20070713074411-i8ujk5dkgx5sxsdq
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: doc-update
timestamp: Thu 2007-08-09 18:51:27 +0200
message:
Update after review by Aaron.
modified:
doc/developers/update.txt update.txt-20070713074325-vtxf9eb5c6keg30j-1
------------------------------------------------------------
revno: 2592.1.24.1.1
revision-id: jelmer at samba.org-20070713074411-i8ujk5dkgx5sxsdq
parent: pqm at pqm.ubuntu.com-20070713060449-rydsxz28x12l2ksm
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: doc-update
timestamp: Fri 2007-07-13 10:44:11 +0300
message:
Import performance analysis of update.
added:
doc/developers/update.txt update.txt-20070713074325-vtxf9eb5c6keg30j-1
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.2
revision-id: pqm at pqm.ubuntu.com-20070824133750-r25v5g25g1flggy6
parent: pqm at pqm.ubuntu.com-20070824031612-53wd9sywqa4zima5
parent: abentley at panoramicfeedback.com-20070824130226-39p2xfpmw36kzuk1
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-08-24 14:37:50 +0100
message:
Fix patch verification of CR and CRLF files and reactivate it
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
------------------------------------------------------------
revno: 2520.4.151.1.1.1.4
revision-id: abentley at panoramicfeedback.com-20070824130226-39p2xfpmw36kzuk1
parent: abentley at panoramicfeedback.com-20070824125926-l0nvn5c5umbb4u1w
committer: Aaron Bentley <abentley at panoramicfeedback.com>
branch nick: bzr.mpbundle
timestamp: Fri 2007-08-24 09:02:26 -0400
message:
Add NEWS entry
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 2520.4.151.1.1.1.3
revision-id: abentley at panoramicfeedback.com-20070824125926-l0nvn5c5umbb4u1w
parent: abentley at panoramicfeedback.com-20070815204922-sm909246487o1thf
parent: pqm at pqm.ubuntu.com-20070824031612-53wd9sywqa4zima5
committer: Aaron Bentley <abentley at panoramicfeedback.com>
branch nick: bzr.mpbundle
timestamp: Fri 2007-08-24 08:59:26 -0400
message:
Merge bzr.dev
removed:
doc/README.1st README.1st-20060314161707-b943d5d4cce669b6
doc/developers/scratch.txt scratch.txt-20070618020404-cdhv0ecgrukomemg-3
added:
bzrlib/mail_client.py mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
bzrlib/tests/blackbox/test_bundle_info.py test_bundle_info.py-20070816181255-eiuodwxuqu7w7gxf-1
bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
bzrlib/util/simplemapi.py simplemapi.py-20070810174811-ievl23nziuiq2k3m-1
doc/developers/directory-fingerprints.txt directoryfingerprint-20070731033348-okmllh4b5srdtlk2-1
doc/developers/last-modified.txt lastmodified.txt-20070806222243-df50y5fi7n85vnob-1
doc/developers/revision-properties.txt revisionproperties.t-20070807133526-w57m8zv5o7t5kugm-1
doc/en/ en-20070810050627-g7r46azs5mlwj61j-1
doc/en/developer-guide/ developerguide-20070810050627-g7r46azs5mlwj61j-2
doc/en/mini-tutorial/ minitutorial-20070813141352-2u64ooqzo0or4hss-1
doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
doc/en/quick-reference/ quickreference-20070813143223-5i7bgw7w8s7l3ae2-1
doc/en/quick-reference/Makefile makefile-20070813143223-5i7bgw7w8s7l3ae2-2
doc/en/quick-reference/quick-start-summary.svg quickstartsummary.sv-20070813143223-5i7bgw7w8s7l3ae2-3
doc/en/release-notes/ releasenotes-20070810050627-g7r46azs5mlwj61j-3
doc/en/user-guide/ userguide-20070810050627-g7r46azs5mlwj61j-4
doc/en/user-reference/ userreference-20070810050627-g7r46azs5mlwj61j-5
doc/index.txt index.txt-20070813101924-07gd9i9d2jt124bf-1
renamed:
doc/bug_trackers.txt => doc/en/user-guide/bug_trackers.txt bug_trackers.txt-20070713223459-khxdlcudraii95uv-1
doc/centralized_workflow.txt => doc/en/user-guide/centralized_workflow.txt centralized_workflow-20060830194948-kspf52565xvgrlil-1
doc/configuration.txt => doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/conflicts.txt => doc/en/user-guide/conflicts.txt conflicts.txt-20070723221841-ns3jvwxdb4okn6fk-1
doc/http_smart_server.txt => doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
doc/index.txt => doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/plugins.txt => doc/en/user-guide/plugins.txt plugins.txt-20060314145616-525099a747f3ffdd
doc/server.txt => doc/en/user-guide/server.txt server.txt-20060913044801-h939fvbwzz39gf7g-1
doc/setting_up_email.txt => doc/en/user-guide/setting_up_email.txt setting_up_email.txt-20060314161707-fd242c8944346173
doc/shared_repository_layouts.txt => doc/en/user-guide/shared_repository_layouts.txt shared_repository_la-20070502152030-bagewuqs18ns24o7-1
doc/specifying_revisions.txt => doc/en/user-guide/specifying_revisions.txt specifying_revisions.txt-20060314161707-19deb139101bea33
doc/tutorial.txt => doc/en/user-guide/tutorial.txt tutorial.txt-20050804190939-9dcbba2ef053bc84
doc/using_aliases.txt => doc/en/user-guide/using_aliases.txt using_aliases.txt-20060314161707-c21d27fa2939e039
doc/version_info.txt => doc/en/user-guide/version_info.txt version_info.txt-20060921215543-gju6o5xdic8w25np-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
INSTALL INSTALL-20051019070340-4b27f2fb240c7943
Makefile Makefile-20050805140406-d96e3498bb61c5bb
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bundle/commands.py __init__.py-20050617152058-1b6530d9ab85c11c
bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/check.py check.py-20050309040759-f3a679400c06bcc1
bzrlib/commands.py bzr.py-20050309040720-d10f4714595cf8c3
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/delta.py delta.py-20050729221636-54cf14ef94783d0a
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/info.py info.py-20050323235939-6bbfe7d9700b0b9b
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lockable_files.py control_files.py-20051111201905-bb88546e799d669f
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/mutabletree.py mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
bzrlib/osutils.py osutils.py-20050309040759-eeaff12fbf77ac86
bzrlib/pack.py container.py-20070607160755-tr8zc26q18rn0jnb-1
bzrlib/patches.py patches.py-20050727183609-378c1cc5972ce908
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revision.py revision.py-20050309040759-e77802c08f3999d5
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/status.py status.py-20050505062338-431bfa63ec9b19e6
bzrlib/store/__init__.py store.py-20050309040759-164dc5173d6406c2
bzrlib/store/revision/knit.py knit.py-20060303020652-de5fa299e941a3c7
bzrlib/store/revision/text.py text.py-20060303020652-e49155f0da4d14ab
bzrlib/store/versioned/__init__.py weavestore.py-20050907094258-88262e0434babab9
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
bzrlib/tests/blackbox/test_bound_branches.py test_bound_branches.py-20051109215527-2373188ad566c205
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_checkout.py test_checkout.py-20060211231752-a5cde67cf70af854
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
bzrlib/tests/blackbox/test_update.py test_update.py-20060212125639-c4dad1a5c56d5919
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
bzrlib/tests/branch_implementations/test_revision_history.py test_revision_histor-20070326062311-v7co92liyuchb80w-1
bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
bzrlib/tests/repository_implementations/test_reconcile.py test_reconcile.py-20060223022332-572ef70a3288e369
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/revisionstore_implementations/test_all.py test_all.py-20060303020702-9b2d4c1d75407f31
bzrlib/tests/test_branch.py test_branch.py-20060116013032-97819aa07b8ab3b5
bzrlib/tests/test_bundle.py test.py-20050630184834-092aa401ab9f039c
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_commit.py test_commit.py-20050914060732-279f057f8c295434
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_escaped_store.py test_escaped_store.py-20060216023929-6bcb9a067344959f
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_index.py test_index.py-20070712131115-lolkarso50vjr64s-2
bzrlib/tests/test_lockdir.py test_lockdir.py-20060220222025-33d4221569a3d600
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_pack.py test_container.py-20070607160755-tr8zc26q18rn0jnb-2
bzrlib/tests/test_patches.py test_patches.py-20051231203844-f4974d20f6aea09c
bzrlib/tests/test_revision.py testrevision.py-20050804210559-46f5e1eb67b01289
bzrlib/tests/test_revisionnamespaces.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_source.py test_source.py-20051207061333-a58dea6abecc030d
bzrlib/tests/test_store.py teststore.py-20050826022702-f6caadb647395769
bzrlib/tests/test_trace.py testtrace.py-20051110225523-a21117fc7a07eeff
bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/test_upgrade.py test_upgrade.py-20051004040251-555fe1d2bae1bc71
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/tests/test_weave.py testknit.py-20050627023648-9833cc5562ffb785
bzrlib/tests/test_win32utils.py test_win32utils.py-20070713181630-8xsrjymd3e8mgw23-108
bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
bzrlib/tests/workingtree_implementations/test_is_ignored.py test_is_ignored.py-20060518083307-a5b383dd4d070083
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/fakevfat.py fakevfat.py-20060407072414-d59939fa1d6c79d9
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
bzrlib/transport/http/_pycurl.py pycurlhttp.py-20060110060940-4e2a705911af77a6
bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
bzrlib/transport/http/wsgi.py wsgi.py-20061005091552-rz8pva0olkxv0sd8-2
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
bzrlib/transport/ssh.py ssh.py-20060824042150-0s9787kng6zv1nwq-1
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
bzrlib/ui/__init__.py ui.py-20050824083933-8cf663c763ba53a9
bzrlib/ui/text.py text.py-20051130153916-2e438cffc8afc478
bzrlib/versionedfile.py versionedfile.py-20060222045106-5039c71ee3b65490
bzrlib/weave.py knit.py-20050627021749-759c29984154256b
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
doc/bazaar-vcs.org.kid bazaarvcs.org.kid-20060929181918-huv7bgmdey0ktqci-1
doc/developers/index.txt index.txt-20070508041241-qznziunkg0nffhiw-1
doc/developers/performance-contributing.txt performancecontribut-20070621063612-ac4zhhagjzkr21qp-1
doc/developers/performance-roadmap.txt performanceroadmap.t-20070507174912-mwv3xv517cs4sisd-2
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
tools/rst2prettyhtml.py rst2prettyhtml.py-20060929181914-t7dh62f2wxi0i5aj-1
tools/win32/ostools.py ostools.py-20060731163025-npjffm46rgnkl50d-1
doc/en/user-guide/configuration.txt configuration.txt-20060314161707-868350809502af01
doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
doc/en/user-guide/server.txt server.txt-20060913044801-h939fvbwzz39gf7g-1
------------------------------------------------------------
revno: 2520.4.151.1.1.1.2
revision-id: abentley at panoramicfeedback.com-20070815204922-sm909246487o1thf
parent: abentley at panoramicfeedback.com-20070815203258-dryf3x8sotx7q8y0
committer: Aaron Bentley <abentley at panoramicfeedback.com>
branch nick: bzr.mpbundle
timestamp: Wed 2007-08-15 16:49:22 -0400
message:
Restore patch verification for CR, CRLF files
modified:
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
------------------------------------------------------------
revno: 2520.4.151.1.1.1.1
revision-id: abentley at panoramicfeedback.com-20070815203258-dryf3x8sotx7q8y0
parent: abentley at panoramicfeedback.com-20070815161519-aw3u3mgqelrwg0hy
committer: Aaron Bentley <abentley at panoramicfeedback.com>
branch nick: bzr.mpbundle
timestamp: Wed 2007-08-15 16:32:58 -0400
message:
Reactivate patch verification
modified:
bzrlib/merge_directive.py merge_directive.py-20070228184838-ja62280spt1g7f4x-1
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
------------------------------------------------------------
revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.1
revision-id: pqm at pqm.ubuntu.com-20070824031612-53wd9sywqa4zima5
parent: pqm at pqm.ubuntu.com-20070823005013-ada9x55rc31yiwou
parent: robertc at robertcollins.net-20070824021547-ov2abtu3buhgzsuz
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-08-24 04:16:12 +0100
message:
(robertc) Add a number of -Devil checks.
modified:
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
=== added file 'doc/developers/update.txt'
--- a/doc/developers/update.txt 1970-01-01 00:00:00 +0000
+++ b/doc/developers/update.txt 2007-08-25 17:37:24 +0000
@@ -0,0 +1,69 @@
+"bzr update" performance analysis
+=================================
+
+There are 5 different slightly different situations in which bzr update
+can be used:
+
+* local only (no-op)
+* lightweight checkout
+* heavy checkout
+* heavy checkout w/ local changes
+* bzr update could work on "bound branch" w/no wt
+
+No new revisions
+================
+Should be O(1) to determine
+Tree base is up to date
+wt.last-rev == wt.b.last-rev
+
+No local changes, only new revisions
+====================================
+1) Need to move wt.last_rev (O(1))
+2) apply delta from base to new rev (O(changes))
+applying changes to files is approx (O(lines-in-files ^ 2))
+3) update meta-info (executable bits, etc) about modified files (O(changes))
+
+2/3 could be concurrent (but that may not necessarily be faster)
+
+potential issue w/ serialized is having 50k files in limbo/
+
+the limbo/ directory could be avoided in some cases, for example when
+adding new files in new directories.
+
+modifying in place: reduces fragmentation of fs, not atomic
+w/ local modification, potential of data loss
+w/o should be safe
+
+"local mod" is diff between disk and last commit, not merge base
+
+Detecting name conflicts should be O(siblings). Alternatively, conflicts
+with existing files can be detected using stat() and conflicts with new files
+can be detected by examining the pending transform. This changes
+complexity to O(changes).
+
+out of date heavyweight checkout, out of date w/master
+=======================================================
+1) open working tree, check latest revision
+2) open working tree branch, check latest revision
+3) mismatch => update wt => wt.b.lastrev
+apply delta to tree O(changed file size)
+---- conflicts
+stop on conflicts
+stop always -> inform user they need to repeat (why not?, GFD)
+4) pull new revs M => L O(newrevs)
+5) apply delta to wt
+local committed changes become a pending merge
+local uncommitted stay uncommitted
+local pending merges are retained (should be gc'd)
+
+offtopic:
+should bzr update report where the source is ?
+should bzr update handle both cases (local tree out-of-date w/local branch, checkout out-of-date w/master) ?
+
+if updating would diverge, give opportuniuty to branch/unbind instead
+local ahead, "push to master"
+
+ideas:
+1) can this be done as a single logical step?
+2) can this be done w/o modifying working tree until end? possible performance improvements
+3) if the pulling revision step could deliver full texts, that may help for the merge (same thing as "bzr pull")
=== modified file 'NEWS'
--- a/NEWS 2007-08-23 02:18:37 +0000
+++ b/NEWS 2007-08-26 23:30:47 +0000
@@ -33,6 +33,9 @@
* get_transport treats an empty possible_transports list the same as a non-
empty one. (Aaron Bentley)
+ * patch verification for merge directives is reactivated, and works with
+ CRLF and CR files. (Aaron Bentley)
+
IMPROVEMENTS:
* ``pull`` and ``merge`` are much faster at installing bundle format 4.
=== modified file 'bzrlib/merge_directive.py'
--- a/bzrlib/merge_directive.py 2007-08-14 23:35:48 +0000
+++ b/bzrlib/merge_directive.py 2007-08-15 20:49:22 +0000
@@ -486,6 +486,7 @@
self.base_revision_id)
# Convert line-endings to UNIX
stored_patch = re.sub('\r\n?', '\n', self.patch)
+ calculated_patch = re.sub('\r\n?', '\n', calculated_patch)
# Strip trailing whitespace
calculated_patch = re.sub(' *\n', '\n', calculated_patch)
stored_patch = re.sub(' *\n', '\n', stored_patch)
@@ -504,8 +505,6 @@
if self._verify_patch(repository):
return 'verified'
else:
- #FIXME patch verification is broken for CRLF files
- return 'inapplicable'
return 'failed'
else:
return 'inapplicable'
=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py 2007-08-13 12:48:50 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py 2007-08-15 20:32:58 +0000
@@ -334,9 +334,7 @@
self.write_directive('directive', source.branch, 'target', 'rev1',
mangle_patch=True)
err = self.run_bzr('merge -d target directive')[1]
- self.expectFailure('Patch verification is disabled',
- self.assertContainsRe, err,
- 'Preview patch does not match changes')
+ self.assertContainsRe(err, 'Preview patch does not match changes')
def test_merge_arbitrary(self):
target = self.make_branch_and_tree('target')
=== modified file 'bzrlib/tests/test_merge_directive.py'
--- a/bzrlib/tests/test_merge_directive.py 2007-08-13 12:48:50 +0000
+++ b/bzrlib/tests/test_merge_directive.py 2007-08-15 20:49:22 +0000
@@ -14,6 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+import re
from bzrlib import (
errors,
@@ -352,13 +353,15 @@
tree_a = self.make_branch_and_tree('tree_a')
tree_a.branch.get_config().set_user_option('email',
'J. Random Hacker <jrandom at example.com>')
- self.build_tree_contents([('tree_a/file', 'content_a\ncontent_b\n')])
- tree_a.add('file')
+ self.build_tree_contents([('tree_a/file', 'content_a\ncontent_b\n'),
+ ('tree_a/file_2', 'content_x\rcontent_y\r')])
+ tree_a.add(['file', 'file_2'])
tree_a.commit('message', rev_id='rev1')
tree_b = tree_a.bzrdir.sprout('tree_b').open_workingtree()
branch_c = tree_a.bzrdir.sprout('branch_c').open_branch()
tree_b.commit('message', rev_id='rev2b')
- self.build_tree_contents([('tree_a/file', 'content_a\ncontent_c \n')])
+ self.build_tree_contents([('tree_a/file', 'content_a\ncontent_c \n'),
+ ('tree_a/file_2', 'content_x\rcontent_z\r')])
tree_a.commit('Commit of rev2a', rev_id='rev2a')
return tree_a, tree_b, branch_c
@@ -528,8 +531,7 @@
self.assertEqual('inapplicable', verified)
else:
self.assertEqual('rev1', base)
- self.expectFailure('Patch verification is disabled',
- self.assertEqual, 'failed', verified)
+ self.assertEqual('failed', verified)
def test_install_revisions_bundle(self):
tree_a, tree_b, branch_c = self.make_trees()
@@ -628,14 +630,14 @@
lines = md.to_lines()
md2 = merge_directive.MergeDirective.from_lines(lines)
md2._verify_patch(tree_a.branch.repository)
- # Stript trailing whitespace
+ # Strip trailing whitespace
md2.patch = md2.patch.replace(' \n', '\n')
md2._verify_patch(tree_a.branch.repository)
# Convert to Mac line-endings
- md2.patch = md2.patch.replace('\n', '\r')
+ md2.patch = re.sub('(\r\n|\r|\n)', '\r', md2.patch)
self.assertTrue(md2._verify_patch(tree_a.branch.repository))
# Convert to DOS line-endings
- md2.patch = md2.patch.replace('\r', '\r\n')
+ md2.patch = re.sub('(\r\n|\r|\n)', '\r\n', md2.patch)
self.assertTrue(md2._verify_patch(tree_a.branch.repository))
md2.patch = md2.patch.replace('content_c', 'content_d')
self.assertFalse(md2._verify_patch(tree_a.branch.repository))
More information about the bazaar-commits
mailing list