Rev 3395: Add Hooks.install_named_hook (Daniel Watkins) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu May 1 05:55:44 BST 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3395
revision-id:pqm at pqm.ubuntu.com-20080501045531-3hkmq9qzoeequw1s
parent: pqm at pqm.ubuntu.com-20080430182230-iz5tit0t2ut5clww
parent: ian.clatworthy at canonical.com-20080430225840-d6qrnzxmvpw5v1jg
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2008-05-01 05:55:31 +0100
message:
  Add Hooks.install_named_hook (Daniel Watkins)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
  bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
  bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
  bzrlib/tests/branch_implementations/test_commit.py test_commit.py-20070206022134-117z1i5b644p63r0-1
  bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
  bzrlib/tests/branch_implementations/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
  bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
  bzrlib/tests/branch_implementations/test_uncommit.py test_uncommit.py-20070205180410-ge7058d9138mvq3x-1
  bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
  bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
  bzrlib/tests/transport_util.py transportutil.py-20070525113600-5v2igk89s8fensom-1
  bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
  doc/en/user-guide/hooks.txt    hooks.txt-20070829200551-7nr6e5a1io6x78uf-1
    ------------------------------------------------------------
    revno: 3394.1.1
    revision-id:ian.clatworthy at canonical.com-20080430225840-d6qrnzxmvpw5v1jg
    parent: pqm at pqm.ubuntu.com-20080430182230-iz5tit0t2ut5clww
    parent: ian.clatworthy at canonical.com-20080430225647-7tr31njvvg6069t0
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Thu 2008-05-01 08:58:40 +1000
    message:
      Add Hooks.install_named_hook (Daniel Watkins)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
      bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
      bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
      bzrlib/tests/branch_implementations/test_commit.py test_commit.py-20070206022134-117z1i5b644p63r0-1
      bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
      bzrlib/tests/branch_implementations/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
      bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
      bzrlib/tests/branch_implementations/test_uncommit.py test_uncommit.py-20070205180410-ge7058d9138mvq3x-1
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
      bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
      bzrlib/tests/transport_util.py transportutil.py-20070525113600-5v2igk89s8fensom-1
      bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
      doc/en/user-guide/hooks.txt    hooks.txt-20070829200551-7nr6e5a1io6x78uf-1
    ------------------------------------------------------------
    revno: 3256.2.32
    revision-id:ian.clatworthy at canonical.com-20080430225647-7tr31njvvg6069t0
    parent: d.m.watkins at warwick.ac.uk-20080430141438-w2y76ue4le5epcb6
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: hooks
    timestamp: Thu 2008-05-01 08:56:47 +1000
    message:
      tweak hook tests to init the set_rh test when needed
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.31
    revision-id:d.m.watkins at warwick.ac.uk-20080430141438-w2y76ue4le5epcb6
    parent: d.m.watkins at warwick.ac.uk-20080430132137-8yqegd3xwbmvkuu9
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Wed 2008-04-30 15:14:38 +0100
    message:
      Removed needless line from tests.
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.30
    revision-id:d.m.watkins at warwick.ac.uk-20080430132137-8yqegd3xwbmvkuu9
    parent: d.m.watkins at warwick.ac.uk-20080430132107-k2juz6bdxj35xwpt
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Wed 2008-04-30 14:21:37 +0100
    message:
      Updated deprecation warnings and tests.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.29
    revision-id:d.m.watkins at warwick.ac.uk-20080430132107-k2juz6bdxj35xwpt
    parent: d.m.watkins at warwick.ac.uk-20080430130249-fx1v1wtfr2lk0of3
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Wed 2008-04-30 14:21:07 +0100
    message:
      Added symbol_versioning.one_five.
    modified:
      bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
    ------------------------------------------------------------
    revno: 3256.2.28
    revision-id:d.m.watkins at warwick.ac.uk-20080430130249-fx1v1wtfr2lk0of3
    parent: d.m.watkins at warwick.ac.uk-20080423094652-ydbspc00j4oo20rb
    parent: pqm at pqm.ubuntu.com-20080430065440-1l8693padc4f7uho
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Wed 2008-04-30 14:02:49 +0100
    message:
      Merged bzr.dev r3392.
    added:
      bzrlib/tests/interrepository_implementations/test_fetch.py test_fetch.py-20080425213627-j60cjh782ufm83ry-1
    modified:
      Makefile                       Makefile-20050805140406-d96e3498bb61c5bb
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzr                            bzr.py-20050313053754-5485f144c7006fa6
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bundle/bundle_data.py   read_changeset.py-20050619171944-c0d95aa685537640
      bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
      bzrlib/diff.py                 diff.py-20050309040759-26944fbbf2ebbf36
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
      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/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/revisiontree.py         revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
      bzrlib/smart/repository.py     repository.py-20061128022038-vr5wy5bubyb8xttk-1
      bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
      bzrlib/store/revision/knit.py  knit.py-20060303020652-de5fa299e941a3c7
      bzrlib/tests/blackbox/test_version.py test_version.py-20070312060045-ol7th9z035r3im3d-1
      bzrlib/tests/interrepository_implementations/__init__.py __init__.py-20060220054744-baf49a1f88f17b1a
      bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
      bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test_bundle.py    test.py-20050630184834-092aa401ab9f039c
      bzrlib/tests/test_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
      bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
      bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-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_store.py     teststore.py-20050826022702-f6caadb647395769
      bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
      bzrlib/tests/tree_implementations/test_inv.py test_inv.py-20070312023226-0cdvk5uwhutis9vg-1
      bzrlib/tests/tree_implementations/test_test_trees.py test_tree_trees.py-20060720091921-3nwi5h21lf06vf5p-1
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/ftp.py        ftp.py-20051116161804-58dc9506548c2a53
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
      bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
      doc/en/user-guide/sending_changes.txt sending_changes.txt-20071123154453-dk2mjhrg1vpjm5w2-4
    ------------------------------------------------------------
    revno: 3256.2.27
    revision-id:d.m.watkins at warwick.ac.uk-20080423094652-ydbspc00j4oo20rb
    parent: d.m.watkins at warwick.ac.uk-20080420082139-3273sz01qsc98ddj
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Wed 2008-04-23 10:46:52 +0100
    message:
      Fixed failing test.
    modified:
      bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
    ------------------------------------------------------------
    revno: 3256.2.26
    revision-id:d.m.watkins at warwick.ac.uk-20080420082139-3273sz01qsc98ddj
    parent: d.m.watkins at warwick.ac.uk-20080420080303-c8eosjjfyt8za2yf
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sun 2008-04-20 09:21:39 +0100
    message:
      Updated tests to use install_named_hook.
    modified:
      bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
      bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
      bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
    ------------------------------------------------------------
    revno: 3256.2.25
    revision-id:d.m.watkins at warwick.ac.uk-20080420080303-c8eosjjfyt8za2yf
    parent: d.m.watkins at warwick.ac.uk-20080420074847-sioq6nbdqgnd4mzd
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sun 2008-04-20 09:03:03 +0100
    message:
      Updated deprecation warnings.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.24
    revision-id:d.m.watkins at warwick.ac.uk-20080420074847-sioq6nbdqgnd4mzd
    parent: d.m.watkins at warwick.ac.uk-20080420074829-awq07tyxg1r607tz
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sun 2008-04-20 08:48:47 +0100
    message:
      Updated NEWS.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3256.2.23
    revision-id:d.m.watkins at warwick.ac.uk-20080420074829-awq07tyxg1r607tz
    parent: d.m.watkins at warwick.ac.uk-20080315005143-l00ao54gwri2pksm
    parent: pqm at pqm.ubuntu.com-20080419002305-25ayhxp3m0b95e9c
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sun 2008-04-20 08:48:29 +0100
    message:
      Merged bzr.dev r3374.
    removed:
      bzrlib/xml6.py                 xml6.py-20060823042456-dbaaq4atrche7xy5-1
    added:
      bzrlib/tests/test_mutabletree.py test_mutabletree.py-20080405014429-2v0cdi3re320p8db-1
      bzrlib/tests/test_uncommit.py  test_uncommit.py-20080316104338-y3gxu67g5m2qih10-1
      bzrlib/tests/tree_implementations/test_annotate_iter.py test_annotate_iter.p-20080315092519-h4dc43rntmfmq16d-1
      bzrlib/transport/nosmart.py    nosmart.py-20080402095843-6ib17idympwy1zkr-1
      bzrlib/xml5.py                 xml5.py-20080328030717-t9guwinq8hom0ar3-1
      bzrlib/xml6.py                 xml6.py-20080327235607-1skmbg4o9cd1o636-1
      doc/developers/integration.txt integration.txt-20080404022341-2lorxocp1in07zij-1
      doc/developers/plugin-api.txt  pluginapi.txt-20080229110225-q2j5y4agqhlkjn0s-1
      doc/developers/tortoise-strategy.txt tortoisestrategy.txt-20080403024510-2ahdqrvnwqrb5p5t-1
    renamed:
      bzrlib/tests/test_revisionnamespaces.py => bzrlib/tests/test_revisionspec.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
      bzrlib/xml5.py => bzrlib/xml8.py xml5.py-20050907032657-aac8f960815b66b1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      README                         README-20050309040720-8f368abf9f346b9d
      bzr                            bzr.py-20050313053754-5485f144c7006fa6
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
      bzrlib/_knit_load_data_c.pyx   knit_c.pyx-20070509143944-u42gy8w387a10m0j-1
      bzrlib/_knit_load_data_py.py   _knit_load_data_py.p-20070629000948-9a0nh4s118bi5y8n-1
      bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/bugtracker.py           bugtracker.py-20070410073305-vu1vu1qosjurg8kb-1
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bundle/__init__.py      changeset.py-20050513021216-b02ab57fb9738913
      bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/commands.py             bzr.py-20050309040720-d10f4714595cf8c3
      bzrlib/config.py               config.py-20051011043216-070c74f4e9e338e8
      bzrlib/debug.py                debug.py-20061102062349-vdhrw9qdpck8cl35-1
      bzrlib/diff.py                 diff.py-20050309040759-26944fbbf2ebbf36
      bzrlib/doc/api/__init__.py     __init__.py-20051224020744-7b87d590843855bc
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/help_topics/en/configuration.txt configuration.txt-20060314161707-868350809502af01
      bzrlib/help_topics/en/hooks.txt hooks.txt-20070830033044-xxu2rced13f72dka-1
      bzrlib/inventory.py            inventory.py-20050309040759-6648b84ca2005b37
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/lockable_files.py       control_files.py-20051111201905-bb88546e799d669f
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/mail_client.py          mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/merge3.py               merge3.py-20050704130834-bf0597094828a2e1
      bzrlib/multiparent.py          __init__.py-20070410133617-n1jdhcc1n1mibarp-1
      bzrlib/mutabletree.py          mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/plugin.py               plugin.py-20050622060424-829b654519533d69
      bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
      bzrlib/progress.py             progress.py-20050610070202-df9faaab791964c0
      bzrlib/reconcile.py            reweave_inventory.py-20051108164726-1e5e0934febac06e
      bzrlib/reconfigure.py          reconfigure.py-20070908040425-6ykgo7escxhyrg9p-1
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repofmt/weaverepo.py    presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/revision.py             revision.py-20050309040759-e77802c08f3999d5
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/revisiontree.py         revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
      bzrlib/smart/branch.py         branch.py-20061124031907-mzh3pla28r83r97f-1
      bzrlib/smart/bzrdir.py         bzrdir.py-20061122024551-ol0l0o0oofsu9b3t-1
      bzrlib/smart/client.py         client.py-20061116014825-2k6ada6xgulslami-1
      bzrlib/smart/medium.py         medium.py-20061103051856-rgu2huy59fkz902q-1
      bzrlib/smart/protocol.py       protocol.py-20061108035435-ot0lstk2590yqhzr-1
      bzrlib/smart/repository.py     repository.py-20061128022038-vr5wy5bubyb8xttk-1
      bzrlib/smart/request.py        request.py-20061108095550-gunadhxmzkdjfeek-1
      bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
      bzrlib/smart/vfs.py            vfs.py-20061108095550-gunadhxmzkdjfeek-2
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/store/revision/knit.py  knit.py-20060303020652-de5fa299e941a3c7
      bzrlib/store/versioned/__init__.py weavestore.py-20050907094258-88262e0434babab9
      bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
      bzrlib/tests/TestUtil.py       TestUtil.py-20050824080200-5f70140a2d938694
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_mv.py test_mv.py-20060705114902-33tkxz0o9cdshemo-1
      bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
      bzrlib/tests/blackbox/test_reconfigure.py test_reconfigure.py-20070908173426-khfo5fi2rgzgtwj3-1
      bzrlib/tests/blackbox/test_serve.py test_serve.py-20060913064329-8t2pvmsikl4s3xhl-1
      bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
      bzrlib/tests/blackbox/test_switch.py test_switch.py-20071122111948-0c5en6uz92bwl76h-1
      bzrlib/tests/blackbox/test_uncommit.py test_uncommit.py-20051027212835-84944b63adae51be
      bzrlib/tests/blackbox/test_upgrade.py test_upgrade.py-20060120060132-b41e5ed2f886ad28
      bzrlib/tests/blackbox/test_version.py test_version.py-20070312060045-ol7th9z035r3im3d-1
      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/bzrdir_implementations/__init__.py __init__.py-20060131065642-34c39b54f42dd048
      bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
      bzrlib/tests/interrepository_implementations/__init__.py __init__.py-20060220054744-baf49a1f88f17b1a
      bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
      bzrlib/tests/intertree_implementations/__init__.py __init__.py-20060724101752-09ysswo1a92uqyoz-3
      bzrlib/tests/interversionedfile_implementations/__init__.py __init__.py-20060302012326-981af525594d02ed
      bzrlib/tests/interversionedfile_implementations/test_join.py test_join.py-20060302012326-9b5e9b0f0a03fedc
      bzrlib/tests/repository_implementations/test_check_reconcile.py test_broken.py-20070928125406-62236394w0jpbpd6-2
      bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
      bzrlib/tests/repository_implementations/test_iter_reverse_revision_history.py test_iter_reverse_re-20070217015036-spu7j5ggch7pbpyd-1
      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_annotate.py  test_annotate.py-20061213215015-sttc9agsxomls7q0-1
      bzrlib/tests/test_branch.py    test_branch.py-20060116013032-97819aa07b8ab3b5
      bzrlib/tests/test_bugtracker.py test_bugtracker.py-20070410073305-vu1vu1qosjurg8kb-2
      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_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
      bzrlib/tests/test_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
      bzrlib/tests/test_lazy_import.py test_lazy_import.py-20060910203832-f77c54gf3n232za0-2
      bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
      bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
      bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
      bzrlib/tests/test_merge3.py    merge3.py-20050704130834-556689114c89e6f2
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
      bzrlib/tests/test_plugins.py   plugins.py-20050622075746-32002b55e5e943e9
      bzrlib/tests/test_read_bundle.py test_read_bundle.py-20060615211421-ud8cwr1ulgd914zf-1
      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_revision.py  testrevision.py-20050804210559-46f5e1eb67b01289
      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_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
      bzrlib/tests/test_store.py     teststore.py-20050826022702-f6caadb647395769
      bzrlib/tests/test_subsume.py   test_subsume.py-20060927040024-tsvh4pchajoayymg-1
      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_wsgi.py      test_wsgi.py-20061005091552-rz8pva0olkxv0sd8-1
      bzrlib/tests/test_xml.py       test_xml.py-20050905091053-80b45588931a9b35
      bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
      bzrlib/tests/workingtree_implementations/__init__.py __init__.py-20060203003124-b2aa5aca21a8bfad
      bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
      bzrlib/tests/workingtree_implementations/test_locking.py test_locking.py-20060707151933-tav3o2hpibwi53u4-3
      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/ftp.py        ftp.py-20051116161804-58dc9506548c2a53
      bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
      bzrlib/transport/http/_urllib2_wrappers.py _urllib2_wrappers.py-20060913231729-ha9ugi48ktx481ao-1
      bzrlib/transport/http/wsgi.py  wsgi.py-20061005091552-rz8pva0olkxv0sd8-2
      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/uncommit.py             uncommit.py-20050626215513-5ec509fa425b305c
      bzrlib/upgrade.py              history2weaves.py-20050818063535-e7d319791c19a8b2
      bzrlib/version.py              version.py-20060816024207-ves6ult9a11taj9t-1
      bzrlib/versionedfile.py        versionedfile.py-20060222045106-5039c71ee3b65490
      bzrlib/weave.py                knit.py-20050627021749-759c29984154256b
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
      bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
      bzrlib/xml_serializer.py       xml.py-20050309040759-57d51586fdec365d
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/developers/index.txt       index.txt-20070508041241-qznziunkg0nffhiw-1
      doc/developers/repository.txt  repository.txt-20070709152006-xkhlek456eclha4u-1
      doc/en/user-guide/annotating_changes.txt annotating_changes.t-20071122141511-0knao2lklsdsvb1q-1
      doc/en/user-guide/bazaar_workflows.txt bazaar_workflows.txt-20071114035000-q36a9h57ps06uvnl-1
      doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
      doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
      doc/en/user-guide/http_smart_server.txt fastcgi.txt-20061005091552-rz8pva0olkxv0sd8-3
      doc/en/user-guide/installing_bazaar.txt installing_bazaar.tx-20071114035000-q36a9h57ps06uvnl-4
      doc/en/user-guide/introducing_bazaar.txt introducing_bazaar.t-20071114035000-q36a9h57ps06uvnl-5
      doc/en/user-guide/partner_intro.txt partner_workflow.txt-20071122141511-0knao2lklsdsvb1q-4
      doc/en/user-guide/undoing_mistakes.txt undoing_mistakes.txt-20071121092300-8fyacngt1w98e5mp-1
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
      bzrlib/tests/test_revisionspec.py testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
      bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
    ------------------------------------------------------------
    revno: 3256.2.22
    revision-id:d.m.watkins at warwick.ac.uk-20080315005143-l00ao54gwri2pksm
    parent: d.m.watkins at warwick.ac.uk-20080311003851-3a01ooy9hrapdok4
    parent: pqm at pqm.ubuntu.com-20080314225929-4y11nn6gml5qfzz1
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-15 00:51:43 +0000
    message:
      Merged bzr.dev r3278.
    added:
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
      bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
      bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
      doc/en/admin-guide/            docenadminguide-20080305135054-y7y2c986yf94zljn-1
      doc/en/admin-guide/index.txt   index.txt-20080305140741-ecw0lap8dxkxc05g-1
    renamed:
      bzrlib/plugins/launchpad/lp_indirect.py => bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
      bzrlib/plugins/launchpad/test_lp_indirect.py => bzrlib/plugins/launchpad/test_lp_directory.py test_lp_indirect.py-20070126002743-oyle362tzv9cd8mi-1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
      bzrlib/diff.py                 diff.py-20050309040759-26944fbbf2ebbf36
      bzrlib/dirstate.py             dirstate.py-20060728012006-d6mvoihjb3je9peu-1
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/mail_client.py          mail_client.py-20070809192806-vuxt3t19srtpjpdn-1
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/missing.py              missing.py-20050812153334-097f7097e2a8bcd1
      bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
      bzrlib/plugins/launchpad/lp_registration.py lp_registration.py-20060315190948-daa617eafe3a8d48
      bzrlib/registry.py             lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/smart/client.py         client.py-20061116014825-2k6ada6xgulslami-1
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
      bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
      bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
      bzrlib/tests/blackbox/test_send.py test_bundle.py-20060616222707-c21c8b7ea5ef57b1
      bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
      bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
      bzrlib/tests/test_mail_client.py test_mail_client.py-20070809192806-vuxt3t19srtpjpdn-2
      bzrlib/tests/test_registry.py  test_lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-2
      bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
      bzrlib/tests/test_upgrade.py   test_upgrade.py-20051004040251-555fe1d2bae1bc71
      bzrlib/tests/test_urlutils.py  test_urlutils.py-20060502192900-46b1f9579987cf9c
      bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
      bzrlib/tests/workingtree_implementations/test_merge_from_branch.py test_merge_from_bran-20060904034200-12jxyk2zlhpufxe1-1
      bzrlib/tests/workingtree_implementations/test_parents.py test_set_parents.py-20060807231740-yicmnlci1mj8smu1-1
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/__init__.py   transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
      bzrlib/urlutils.py             urlutils.py-20060502195429-e8a161ecf8fac004
      bzrlib/util/configobj/configobj.py configobj.py-20051018184548-06992a2246425e3e
      bzrlib/util/configobj/docs/configobj.txt configobj.txt-20051018184548-4949b5f17e6a19c7
      bzrlib/util/configobj/docs/validate.txt validate.txt-20051018184548-9e0e5ad913e258f5
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
      bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
      doc/developers/lca-merge.txt   lcamerge.txt-20080103061803-9isydn4ivgwrvorw-1
      doc/en/mini-tutorial/index.txt index.txt-20070813141352-2u64ooqzo0or4hss-2
      doc/en/user-guide/hooks.txt    hooks.txt-20070829200551-7nr6e5a1io6x78uf-1
      doc/en/user-guide/version_info.txt version_info.txt-20060921215543-gju6o5xdic8w25np-1
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
      bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
      bzrlib/plugins/launchpad/test_lp_directory.py test_lp_indirect.py-20070126002743-oyle362tzv9cd8mi-1
    ------------------------------------------------------------
    revno: 3256.2.21
    revision-id:d.m.watkins at warwick.ac.uk-20080311003851-3a01ooy9hrapdok4
    parent: d.m.watkins at warwick.ac.uk-20080310153522-fdqya6lftwouze0b
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Tue 2008-03-11 00:38:51 +0000
    message:
      Updated docs.
    modified:
      doc/en/user-guide/hooks.txt    hooks.txt-20070829200551-7nr6e5a1io6x78uf-1
    ------------------------------------------------------------
    revno: 3256.2.20
    revision-id:d.m.watkins at warwick.ac.uk-20080310153522-fdqya6lftwouze0b
    parent: d.m.watkins at warwick.ac.uk-20080310134303-usj73iopohe2bd6d
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Mon 2008-03-10 15:35:22 +0000
    message:
      Modified Hooks.install_hook tests to use applyDeprecated.
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.19
    revision-id:d.m.watkins at warwick.ac.uk-20080310134303-usj73iopohe2bd6d
    parent: d.m.watkins at warwick.ac.uk-20080310134038-5rklnc6o8ni2ap8q
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:43:03 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.workingtree_implementations.test_commit.
    modified:
      bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
    ------------------------------------------------------------
    revno: 3256.2.18
    revision-id:d.m.watkins at warwick.ac.uk-20080310134038-5rklnc6o8ni2ap8q
    parent: d.m.watkins at warwick.ac.uk-20080310133731-x2s3yfgckgr4aaxq
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:40:38 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.branch_implementation.test_commit.
    modified:
      bzrlib/tests/branch_implementations/test_commit.py test_commit.py-20070206022134-117z1i5b644p63r0-1
    ------------------------------------------------------------
    revno: 3256.2.17
    revision-id:d.m.watkins at warwick.ac.uk-20080310133731-x2s3yfgckgr4aaxq
    parent: d.m.watkins at warwick.ac.uk-20080310133540-pmu0py1bjvmg998u
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:37:31 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.branch_implementation.test_pull.
    modified:
      bzrlib/tests/branch_implementations/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
    ------------------------------------------------------------
    revno: 3256.2.16
    revision-id:d.m.watkins at warwick.ac.uk-20080310133540-pmu0py1bjvmg998u
    parent: d.m.watkins at warwick.ac.uk-20080310133305-1przied7hexdkftr
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:35:40 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.branch_implementation.test_uncommit.
    modified:
      bzrlib/tests/branch_implementations/test_uncommit.py test_uncommit.py-20070205180410-ge7058d9138mvq3x-1
    ------------------------------------------------------------
    revno: 3256.2.15
    revision-id:d.m.watkins at warwick.ac.uk-20080310133305-1przied7hexdkftr
    parent: d.m.watkins at warwick.ac.uk-20080310133029-46u2rppts9w67ehy
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:33:05 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.branch_implementation.test_hooks.
    modified:
      bzrlib/tests/branch_implementations/test_hooks.py test_hooks.py-20070129154855-blhpwxmvjs07waei-1
    ------------------------------------------------------------
    revno: 3256.2.14
    revision-id:d.m.watkins at warwick.ac.uk-20080310133029-46u2rppts9w67ehy
    parent: d.m.watkins at warwick.ac.uk-20080310132634-fy5vwnaqcbvr3lsj
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:30:29 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.branch_implementation.test_push.
    modified:
      bzrlib/tests/branch_implementations/test_push.py test_push.py-20070130153159-fhfap8uoifevg30j-1
    ------------------------------------------------------------
    revno: 3256.2.13
    revision-id:d.m.watkins at warwick.ac.uk-20080310132634-fy5vwnaqcbvr3lsj
    parent: d.m.watkins at warwick.ac.uk-20080310132241-b2ddachug9lejf2h
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:26:34 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in tests.transport_util.
    modified:
      bzrlib/tests/transport_util.py transportutil.py-20070525113600-5v2igk89s8fensom-1
    ------------------------------------------------------------
    revno: 3256.2.12
    revision-id:d.m.watkins at warwick.ac.uk-20080310132241-b2ddachug9lejf2h
    parent: d.m.watkins at warwick.ac.uk-20080310001740-panxxd4p1d66tcm3
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks-fix-deprecated
    timestamp: Mon 2008-03-10 13:22:41 +0000
    message:
      Updated uses of Hooks.install_hook to Hooks.install_named_hook in test_smart_transport.py.
    modified:
      bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
    ------------------------------------------------------------
    revno: 3256.2.11
    revision-id:d.m.watkins at warwick.ac.uk-20080310001740-panxxd4p1d66tcm3
    parent: d.m.watkins at warwick.ac.uk-20080310001524-t5afj5qfqyqihfzg
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Mon 2008-03-10 00:17:40 +0000
    message:
      Modified install_hook to call install_named_hook, as suggested by Aaron.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.10
    revision-id:d.m.watkins at warwick.ac.uk-20080310001524-t5afj5qfqyqihfzg
    parent: d.m.watkins at warwick.ac.uk-20080308235856-nypvjpb7ezq3fpcg
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Mon 2008-03-10 00:15:24 +0000
    message:
      Tightened exception scope, as suggested by Aaron.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.9
    revision-id:d.m.watkins at warwick.ac.uk-20080308235856-nypvjpb7ezq3fpcg
    parent: d.m.watkins at warwick.ac.uk-20080308233031-mteawtzna6l6spoe
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:58:56 +0000
    message:
      Added NEWS entry.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3256.2.8
    revision-id:d.m.watkins at warwick.ac.uk-20080308233031-mteawtzna6l6spoe
    parent: d.m.watkins at warwick.ac.uk-20080308232909-06819hqp4sdkqvam
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:30:31 +0000
    message:
      Alphabetised hooks.py.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.7
    revision-id:d.m.watkins at warwick.ac.uk-20080308232909-06819hqp4sdkqvam
    parent: d.m.watkins at warwick.ac.uk-20080308232523-ymi4ju5jjdqypptr
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:29:09 +0000
    message:
      Deprecated Hooks.install_hook.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.6
    revision-id:d.m.watkins at warwick.ac.uk-20080308232523-ymi4ju5jjdqypptr
    parent: d.m.watkins at warwick.ac.uk-20080308231536-t7h3ox4docehlfqa
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:25:23 +0000
    message:
      Added to tests.
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.5
    revision-id:d.m.watkins at warwick.ac.uk-20080308231536-t7h3ox4docehlfqa
    parent: d.m.watkins at warwick.ac.uk-20080308231452-zlso6a5iy2nclm2u
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:15:36 +0000
    message:
      Added install_named_hook.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.4
    revision-id:d.m.watkins at warwick.ac.uk-20080308231452-zlso6a5iy2nclm2u
    parent: d.m.watkins at warwick.ac.uk-20080308224733-geod8arkvg1ipp8j
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 23:14:52 +0000
    message:
      Modified tests to reflect install_named_hook becoming a separate method.
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
    ------------------------------------------------------------
    revno: 3256.2.3
    revision-id:d.m.watkins at warwick.ac.uk-20080308224733-geod8arkvg1ipp8j
    parent: d.m.watkins at warwick.ac.uk-20080308224713-3mhmgxtx6nxaosbw
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 22:47:33 +0000
    message:
      Added docs.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.2
    revision-id:d.m.watkins at warwick.ac.uk-20080308224713-3mhmgxtx6nxaosbw
    parent: d.m.watkins at warwick.ac.uk-20080308224606-jnh2uvx51ibpvoxn
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 22:47:13 +0000
    message:
      Added option name parameter to install_hook.
    modified:
      bzrlib/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
    ------------------------------------------------------------
    revno: 3256.2.1
    revision-id:d.m.watkins at warwick.ac.uk-20080308224606-jnh2uvx51ibpvoxn
    parent: pqm at pqm.ubuntu.com-20080307231150-h9ct4c51ekdiexbs
    committer: Daniel Watkins <D.M.Watkins at warwick.ac.uk>
    branch nick: hooks
    timestamp: Sat 2008-03-08 22:46:06 +0000
    message:
      Added tests from Hooks.install_hook with an optional name parameter.
    modified:
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
=== modified file 'NEWS'
--- a/NEWS	2008-04-30 18:22:30 +0000
+++ b/NEWS	2008-04-30 22:58:40 +0000
@@ -85,6 +85,10 @@
 
   INTERNALS:
 
+    * ``Hooks.install_hook`` is now deprecated in favour of
+      ``Hooks.install_named_hook`` which adds a required ``name`` parameter, to
+      avoid having to call ``Hooks.name_hook``. (Daniel Watkins)
+
     * Implement xml8 serializer.  (Aaron Bentley)
 
   API BREAKS:

=== modified file 'bzrlib/hooks.py'
--- a/bzrlib/hooks.py	2007-06-28 06:32:03 +0000
+++ b/bzrlib/hooks.py	2008-04-30 13:21:37 +0000
@@ -17,6 +17,7 @@
 
 """Support for plugin hooking logic."""
 from bzrlib.lazy_import import lazy_import
+from bzrlib.symbol_versioning import deprecated_method, one_five
 lazy_import(globals(), """
 from bzrlib import (
         errors,
@@ -45,6 +46,7 @@
         """
         return self._callable_names.get(a_callable, "No hook name")
 
+    @deprecated_method(one_five)
     def install_hook(self, hook_name, a_callable):
         """Install a_callable in to the hook hook_name.
 
@@ -54,10 +56,25 @@
             The exact signature will depend on the hook - see the __init__ 
             method of BranchHooks for details on each hook.
         """
+        self.install_named_hook(hook_name, a_callable, None)
+
+    def install_named_hook(self, hook_name, a_callable, name):
+        """Install a_callable in to the hook hook_name, and label it name.
+
+        :param hook_name: A hook name. See the __init__ method of BranchHooks
+            for the complete list of hooks.
+        :param a_callable: The callable to be invoked when the hook triggers.
+            The exact signature will depend on the hook - see the __init__ 
+            method of BranchHooks for details on each hook.
+        :param name: A name to associate a_callable with, to show users what is
+            running.
+        """
         try:
             self[hook_name].append(a_callable)
         except KeyError:
             raise errors.UnknownHook(self.__class__.__name__, hook_name)
+        if name is not None:
+            self.name_hook(a_callable, name)
 
     def name_hook(self, a_callable, name):
         """Associate name with a_callable to show users what is running."""

=== modified file 'bzrlib/symbol_versioning.py'
--- a/bzrlib/symbol_versioning.py	2008-03-20 00:43:25 +0000
+++ b/bzrlib/symbol_versioning.py	2008-04-30 13:21:07 +0000
@@ -46,6 +46,7 @@
            'one_two',
            'one_three',
            'one_four',
+           'one_five',
            ]
 
 from warnings import warn
@@ -73,6 +74,7 @@
 one_two = "%s was deprecated in version 1.2."
 one_three = "%s was deprecated in version 1.3."
 one_four = "%s was deprecated in version 1.4."
+one_five = "%s was deprecated in version 1.5."
 
 def set_warning_method(method):
     """Set the warning method to be used by this module.

=== modified file 'bzrlib/tests/blackbox/test_hooks.py'
--- a/bzrlib/tests/blackbox/test_hooks.py	2008-03-08 18:25:44 +0000
+++ b/bzrlib/tests/blackbox/test_hooks.py	2008-04-23 09:46:52 +0000
@@ -37,7 +37,7 @@
     def test_hooks_with_unnamed_hook(self):
         self.make_branch('.')
         def foo(): return
-        Branch.hooks.install_hook('set_rh', foo)
+        Branch.hooks.install_named_hook('set_rh', foo, None)
         out, err = self.run_bzr('hooks')
         self._check_hooks_output(out, {'set_rh': ["No hook name"]})
 
@@ -45,8 +45,7 @@
         self.make_branch('.')
         def foo(): return
         name = "Foo Bar Hook"
-        Branch.hooks.install_hook('set_rh', foo)
-        Branch.hooks.name_hook(foo, name)
+        Branch.hooks.install_named_hook('set_rh', foo, name)
         out, err = self.run_bzr('hooks')
         self._check_hooks_output(out, {'set_rh': [name]})
 

=== modified file 'bzrlib/tests/branch_implementations/test_commit.py'
--- a/bzrlib/tests/branch_implementations/test_commit.py	2008-02-25 01:38:31 +0000
+++ b/bzrlib/tests/branch_implementations/test_commit.py	2008-03-10 13:40:38 +0000
@@ -68,8 +68,8 @@
 
     def test_post_commit_to_origin(self):
         tree = self.make_branch_and_memory_tree('branch')
-        Branch.hooks.install_hook('post_commit',
-            self.capture_post_commit_hook)
+        Branch.hooks.install_named_hook('post_commit',
+            self.capture_post_commit_hook, None)
         tree.lock_write()
         tree.add('')
         revid = tree.commit('a revision')
@@ -90,8 +90,8 @@
         except errors.UpgradeRequired:
             # cant bind this format, the test is irrelevant.
             return
-        Branch.hooks.install_hook('post_commit',
-            self.capture_post_commit_hook)
+        Branch.hooks.install_named_hook('post_commit',
+            self.capture_post_commit_hook, None)
         tree.lock_write()
         tree.add('')
         revid = tree.commit('a revision')
@@ -108,8 +108,8 @@
         tree.lock_write()
         tree.add('')
         revid = tree.commit('first revision')
-        Branch.hooks.install_hook('post_commit',
-            self.capture_post_commit_hook)
+        Branch.hooks.install_named_hook('post_commit',
+            self.capture_post_commit_hook, None)
         revid2 = tree.commit('second revision')
         # having committed from up the branch, we should get the
         # before and after revnos and revids correctly.
@@ -127,7 +127,8 @@
         tree.lock_write()
         tree.add('')
         root_delta.added = [('', tree.path2id(''), 'directory')]
-        Branch.hooks.install_hook("pre_commit", self.capture_pre_commit_hook)
+        Branch.hooks.install_named_hook("pre_commit",
+            self.capture_pre_commit_hook, None)
         revid1 = tree.commit('first revision')
         revid2 = tree.commit('second revision')
         self.assertEqual([
@@ -149,8 +150,9 @@
                       old_revno, old_revid, new_revno, new_revid,
                       tree_delta, future_tree):
             raise PreCommitException(new_revid)
-        Branch.hooks.install_hook("pre_commit", self.capture_pre_commit_hook)
-        Branch.hooks.install_hook("pre_commit", hook_func)
+        Branch.hooks.install_named_hook("pre_commit",
+            self.capture_pre_commit_hook, None)
+        Branch.hooks.install_named_hook("pre_commit", hook_func, None)
         revids = [None, None, None]
         # this commit will raise an exception
         # so the commit is rolled back and revno unchanged
@@ -160,7 +162,8 @@
         # unregister all pre_commit hooks
         Branch.hooks["pre_commit"] = []
         # and re-register the capture hook
-        Branch.hooks.install_hook("pre_commit", self.capture_pre_commit_hook)
+        Branch.hooks.install_named_hook("pre_commit",
+            self.capture_pre_commit_hook, None)
         # now these commits should go through
         for i in range(1, 3):
             revids[i] = tree.commit('message')
@@ -199,7 +202,8 @@
             tree.unversion(['to_be_unversioned_id'])
             tree.mkdir('added_dir', 'added_dir_id')
             # start to capture pre_commit delta
-            Branch.hooks.install_hook("pre_commit", self.capture_pre_commit_hook)
+            Branch.hooks.install_named_hook("pre_commit",
+                self.capture_pre_commit_hook, None)
             revid2 = tree.commit('second revision')
         finally:
             tree.unlock()

=== modified file 'bzrlib/tests/branch_implementations/test_hooks.py'
--- a/bzrlib/tests/branch_implementations/test_hooks.py	2008-04-09 06:43:42 +0000
+++ b/bzrlib/tests/branch_implementations/test_hooks.py	2008-04-20 08:21:39 +0000
@@ -37,7 +37,8 @@
 
     def test_set_rh_empty_history(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('set_rh', self.capture_set_rh_hook)
+        Branch.hooks.install_named_hook('set_rh', self.capture_set_rh_hook,
+                                        None)
         branch.set_revision_history([])
         self.assertEqual(self.hook_calls,
             [('set_rh', branch, [], True)])
@@ -50,7 +51,8 @@
         tree.commit('empty commit', rev_id='foo')
         tree.unlock()
         branch = tree.branch
-        Branch.hooks.install_hook('set_rh', self.capture_set_rh_hook)
+        Branch.hooks.install_named_hook('set_rh', self.capture_set_rh_hook,
+                                        None)
         # some branches require that their history be set to a revision in the
         # repository
         branch.set_revision_history(['f\xc2\xb5'])
@@ -59,15 +61,18 @@
 
     def test_set_rh_branch_is_locked(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('set_rh', self.capture_set_rh_hook)
+        Branch.hooks.install_named_hook('set_rh', self.capture_set_rh_hook,
+                                        None)
         branch.set_revision_history([])
         self.assertEqual(self.hook_calls,
             [('set_rh', branch, [], True)])
 
     def test_set_rh_calls_all_hooks_no_errors(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('set_rh', self.capture_set_rh_hook)
-        Branch.hooks.install_hook('set_rh', self.capture_set_rh_hook)
+        Branch.hooks.install_named_hook('set_rh', self.capture_set_rh_hook,
+                                        None)
+        Branch.hooks.install_named_hook('set_rh', self.capture_set_rh_hook,
+                                        None)
         branch.set_revision_history([])
         self.assertEqual(self.hook_calls,
             [('set_rh', branch, [], True),
@@ -92,8 +97,10 @@
 
     def test_post_change_branch_tip_empty_history(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('post_change_branch_tip',
-                                  self.capture_post_change_branch_tip_hook)
+        Branch.hooks.install_named_hook(
+            'post_change_branch_tip',
+            self.capture_post_change_branch_tip_hook,
+            None)
         branch.set_last_revision_info(0, NULL_REVISION)
         self.assertEqual(len(self.hook_calls), 1)
         self.assertEqual(self.hook_calls[0][0].branch, branch)
@@ -110,8 +117,10 @@
         tree.commit('empty commit', rev_id='foo')
         tree.unlock()
         branch = tree.branch
-        Branch.hooks.install_hook('post_change_branch_tip',
-                                  self.capture_post_change_branch_tip_hook)
+        Branch.hooks.install_named_hook(
+            'post_change_branch_tip',
+            self.capture_post_change_branch_tip_hook,
+            None)
         # some branches require that their history be set to a revision in the
         # repository
         branch.set_last_revision_info(1, 'f\xc2\xb5')
@@ -124,8 +133,10 @@
 
     def test_post_change_branch_tip_branch_is_locked(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('post_change_branch_tip',
-                                  self.capture_post_change_branch_tip_hook)
+        Branch.hooks.install_named_hook(
+            'post_change_branch_tip',
+            self.capture_post_change_branch_tip_hook,
+            None)
         branch.set_last_revision_info(0, NULL_REVISION)
         self.assertEqual(len(self.hook_calls), 1)
         self.assertEqual(self.hook_calls[0][0].branch, branch)
@@ -133,10 +144,14 @@
 
     def test_post_change_branch_tip_calls_all_hooks_no_errors(self):
         branch = self.make_branch('source')
-        Branch.hooks.install_hook('post_change_branch_tip',
-                                  self.capture_post_change_branch_tip_hook)
-        Branch.hooks.install_hook('post_change_branch_tip',
-                                  self.capture_post_change_branch_tip_hook)
+        Branch.hooks.install_named_hook(
+            'post_change_branch_tip',
+            self.capture_post_change_branch_tip_hook,
+            None)
+        Branch.hooks.install_named_hook(
+            'post_change_branch_tip',
+            self.capture_post_change_branch_tip_hook,
+            None)
         branch.set_last_revision_info(0, NULL_REVISION)
         self.assertEqual(len(self.hook_calls), 2)
         self.assertEqual(self.hook_calls[0][0].branch, branch)

=== modified file 'bzrlib/tests/branch_implementations/test_pull.py'
--- a/bzrlib/tests/branch_implementations/test_pull.py	2007-11-30 23:18:15 +0000
+++ b/bzrlib/tests/branch_implementations/test_pull.py	2008-03-10 13:37:31 +0000
@@ -130,7 +130,8 @@
     def test_post_pull_empty_history(self):
         target = self.make_branch('target')
         source = self.make_branch('source')
-        Branch.hooks.install_hook('post_pull', self.capture_post_pull_hook)
+        Branch.hooks.install_named_hook('post_pull',
+            self.capture_post_pull_hook, None)
         target.pull(source)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.
@@ -158,7 +159,8 @@
             local = BzrDir.create_branch_convenience('local2')
             local.bind(target)
         source = self.make_branch('source')
-        Branch.hooks.install_hook('post_pull', self.capture_post_pull_hook)
+        Branch.hooks.install_named_hook('post_pull',
+            self.capture_post_pull_hook, None)
         local.pull(source)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.
@@ -177,7 +179,8 @@
         sourcedir = target.bzrdir.clone(self.get_url('source'))
         source = MemoryTree.create_on_branch(sourcedir.open_branch())
         rev2 = source.commit('rev 2')
-        Branch.hooks.install_hook('post_pull', self.capture_post_pull_hook)
+        Branch.hooks.install_named_hook('post_pull',
+            self.capture_post_pull_hook, None)
         target.branch.pull(source.branch)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.

=== modified file 'bzrlib/tests/branch_implementations/test_push.py'
--- a/bzrlib/tests/branch_implementations/test_push.py	2007-11-01 09:52:45 +0000
+++ b/bzrlib/tests/branch_implementations/test_push.py	2008-03-10 13:30:29 +0000
@@ -182,7 +182,8 @@
     def test_post_push_empty_history(self):
         target = self.make_branch('target')
         source = self.make_branch('source')
-        Branch.hooks.install_hook('post_push', self.capture_post_push_hook)
+        Branch.hooks.install_named_hook('post_push',
+                                        self.capture_post_push_hook, None)
         source.push(target)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.
@@ -210,7 +211,8 @@
             local = BzrDir.create_branch_convenience('local2')
             local.bind(target)
         source = self.make_branch('source')
-        Branch.hooks.install_hook('post_push', self.capture_post_push_hook)
+        Branch.hooks.install_named_hook('post_push',
+                                        self.capture_post_push_hook, None)
         source.push(local)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.
@@ -229,7 +231,8 @@
         sourcedir = target.bzrdir.clone(self.get_url('source'))
         source = MemoryTree.create_on_branch(sourcedir.open_branch())
         rev2 = source.commit('rev 2')
-        Branch.hooks.install_hook('post_push', self.capture_post_push_hook)
+        Branch.hooks.install_named_hook('post_push',
+                                        self.capture_post_push_hook, None)
         source.branch.push(target.branch)
         # with nothing there we should still get a notification, and
         # have both branches locked at the notification time.

=== modified file 'bzrlib/tests/branch_implementations/test_uncommit.py'
--- a/bzrlib/tests/branch_implementations/test_uncommit.py	2007-07-11 14:58:54 +0000
+++ b/bzrlib/tests/branch_implementations/test_uncommit.py	2008-03-10 13:35:40 +0000
@@ -53,8 +53,8 @@
         tree.add('')
         revid = tree.commit('a revision')
         tree.unlock()
-        Branch.hooks.install_hook('post_uncommit',
-            self.capture_post_uncommit_hook)
+        Branch.hooks.install_named_hook('post_uncommit',
+            self.capture_post_uncommit_hook, None)
         uncommit(tree.branch)
         # with nothing left we should still get a notification, and
         # have the branch locked at notification time.
@@ -76,8 +76,8 @@
         tree.add('')
         revid = tree.commit('a revision')
         tree.unlock()
-        Branch.hooks.install_hook('post_uncommit',
-            self.capture_post_uncommit_hook)
+        Branch.hooks.install_named_hook('post_uncommit',
+            self.capture_post_uncommit_hook, None)
         uncommit(tree.branch)
         # with nothing left we should still get a notification, and
         # have the branch locked at notification time.
@@ -95,8 +95,8 @@
         revid2 = tree.commit('second revision')
         revid3 = tree.commit('third revision')
         tree.unlock()
-        Branch.hooks.install_hook('post_uncommit',
-            self.capture_post_uncommit_hook)
+        Branch.hooks.install_named_hook('post_uncommit',
+            self.capture_post_uncommit_hook, None)
         uncommit(tree.branch, revno=2)
         # having uncommitted from up the branch, we should get the
         # before and after revnos and revids correctly.

=== modified file 'bzrlib/tests/test_hooks.py'
--- a/bzrlib/tests/test_hooks.py	2007-06-28 03:08:53 +0000
+++ b/bzrlib/tests/test_hooks.py	2008-04-30 22:56:47 +0000
@@ -23,6 +23,7 @@
     UnknownHook,
     )
 
+from bzrlib.symbol_versioning import one_five
 from bzrlib.tests import TestCase
 
 
@@ -31,25 +32,43 @@
     def test_install_hook_raises_unknown_hook(self):
         """install_hook should raise UnknownHook if a hook is unknown."""
         hooks = Hooks()
-        self.assertRaises(UnknownHook, hooks.install_hook, 'silly', None)
+        self.assertRaises(UnknownHook, self.applyDeprecated, one_five,
+                          hooks.install_hook, 'silly', None)
 
     def test_install_hook_appends_known_hook(self):
         """install_hook should append the callable for known hooks."""
         hooks = Hooks()
         hooks['set_rh'] = []
-        hooks.install_hook('set_rh', None)
-        self.assertEqual(hooks['set_rh'], [None])
+        self.applyDeprecated(one_five, hooks.install_hook, 'set_rh', None)
+        self.assertEqual(hooks['set_rh'], [None])
+
+    def test_install_named_hook_raises_unknown_hook(self):
+        hooks = Hooks()
+        self.assertRaises(UnknownHook, hooks.install_named_hook, 'silly',
+                          None, "")
+
+    def test_install_named_hook_appends_known_hook(self):
+        hooks = Hooks()
+        hooks['set_rh'] = []
+        hooks.install_named_hook('set_rh', None, "demo")
+        self.assertEqual(hooks['set_rh'], [None])
+
+    def test_install_named_hook_and_retrieve_name(self):
+        hooks = Hooks()
+        hooks['set_rh'] = []
+        hooks.install_named_hook('set_rh', None, "demo")
+        self.assertEqual("demo", hooks.get_hook_name(None))
 
     def test_name_hook_and_retrieve_name(self):
         """name_hook puts the name in the names mapping."""
         hooks = Hooks()
         hooks['set_rh'] = []
-        hooks.install_hook('set_rh', None)
+        self.applyDeprecated(one_five, hooks.install_hook, 'set_rh', None)
         hooks.name_hook(None, 'demo')
         self.assertEqual("demo", hooks.get_hook_name(None))
 
     def test_get_unnamed_hook_name_is_unnamed(self):
         hooks = Hooks()
         hooks['set_rh'] = []
-        hooks.install_hook('set_rh', None)
+        self.applyDeprecated(one_five, hooks.install_hook, 'set_rh', None)
         self.assertEqual("No hook name", hooks.get_hook_name(None))

=== modified file 'bzrlib/tests/test_smart_transport.py'
--- a/bzrlib/tests/test_smart_transport.py	2008-04-14 08:07:08 +0000
+++ b/bzrlib/tests/test_smart_transport.py	2008-04-20 07:48:29 +0000
@@ -1130,8 +1130,8 @@
     def test_server_started_hook_memory(self):
         """The server_started hook fires when the server is started."""
         self.hook_calls = []
-        server.SmartTCPServer.hooks.install_hook('server_started',
-            self.capture_server_call)
+        server.SmartTCPServer.hooks.install_named_hook('server_started',
+            self.capture_server_call, None)
         self.setUpServer()
         # at this point, the server will be starting a thread up.
         # there is no indicator at the moment, so bodge it by doing a request.
@@ -1144,8 +1144,8 @@
     def test_server_started_hook_file(self):
         """The server_started hook fires when the server is started."""
         self.hook_calls = []
-        server.SmartTCPServer.hooks.install_hook('server_started',
-            self.capture_server_call)
+        server.SmartTCPServer.hooks.install_named_hook('server_started',
+            self.capture_server_call, None)
         self.setUpServer(backing_transport=get_transport("."))
         # at this point, the server will be starting a thread up.
         # there is no indicator at the moment, so bodge it by doing a request.
@@ -1160,8 +1160,8 @@
     def test_server_stopped_hook_simple_memory(self):
         """The server_stopped hook fires when the server is stopped."""
         self.hook_calls = []
-        server.SmartTCPServer.hooks.install_hook('server_stopped',
-            self.capture_server_call)
+        server.SmartTCPServer.hooks.install_named_hook('server_stopped',
+            self.capture_server_call, None)
         self.setUpServer()
         result = [([self.backing_transport.base], self.transport.base)]
         # check the stopping message isn't emitted up front.
@@ -1177,8 +1177,8 @@
     def test_server_stopped_hook_simple_file(self):
         """The server_stopped hook fires when the server is stopped."""
         self.hook_calls = []
-        server.SmartTCPServer.hooks.install_hook('server_stopped',
-            self.capture_server_call)
+        server.SmartTCPServer.hooks.install_named_hook('server_stopped',
+            self.capture_server_call, None)
         self.setUpServer(backing_transport=get_transport("."))
         result = [(
             [self.backing_transport.base, self.backing_transport.external_url()]

=== modified file 'bzrlib/tests/transport_util.py'
--- a/bzrlib/tests/transport_util.py	2007-09-24 15:01:26 +0000
+++ b/bzrlib/tests/transport_util.py	2008-03-10 13:26:34 +0000
@@ -115,8 +115,8 @@
         return url
 
     def start_logging_connections(self):
-        ConnectionHookedTransport.hooks.install_hook('_set_connection',
-                                                     self._collect_connection)
+        ConnectionHookedTransport.hooks.install_named_hook(
+            '_set_connection', self._collect_connection, None)
         # uninstall our hooks when we are finished
         self.addCleanup(self.reset_hooks)
 

=== modified file 'bzrlib/tests/workingtree_implementations/test_commit.py'
--- a/bzrlib/tests/workingtree_implementations/test_commit.py	2008-04-05 02:29:11 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_commit.py	2008-04-20 08:21:39 +0000
@@ -498,8 +498,8 @@
         ui.ui_factory = factory
         def a_hook(_, _2, _3, _4, _5, _6):
             pass
-        branch.Branch.hooks.install_hook('post_commit', a_hook)
-        branch.Branch.hooks.name_hook(a_hook, 'hook name')
+        branch.Branch.hooks.install_named_hook('post_commit', a_hook,
+                                               'hook name')
         tree.commit('first post')
         self.assertEqual(
             [('update', 1, 5, 'Collecting changes [Directory 0] - Stage'),
@@ -523,8 +523,8 @@
         ui.ui_factory = factory
         def a_hook(_, _2, _3, _4, _5, _6, _7, _8):
             pass
-        branch.Branch.hooks.install_hook('pre_commit', a_hook)
-        branch.Branch.hooks.name_hook(a_hook, 'hook name')
+        branch.Branch.hooks.install_named_hook('pre_commit', a_hook,
+                                               'hook name')
         tree.commit('first post')
         self.assertEqual(
             [('update', 1, 5, 'Collecting changes [Directory 0] - Stage'),
@@ -548,8 +548,10 @@
             mutabletree.MutableTree.hooks['start_commit'] = []
         self.addCleanup(restoreDefaults)
         tree = self.make_branch_and_tree('.')
-        mutabletree.MutableTree.hooks.install_hook('start_commit', 
-            start_commit_hook_adds_file)
+        mutabletree.MutableTree.hooks.install_named_hook(
+            'start_commit',
+            start_commit_hook_adds_file,
+            None)
         revid = tree.commit('first post')
         committed_tree = tree.basis_tree()
         self.assertTrue(committed_tree.has_filename("newfile"))

=== modified file 'doc/en/user-guide/hooks.txt'
--- a/doc/en/user-guide/hooks.txt	2008-03-11 00:45:46 +0000
+++ b/doc/en/user-guide/hooks.txt	2008-03-15 00:51:43 +0000
@@ -22,8 +22,8 @@
         print "The new revno is %d" % push_result.new_revno
 
 
-    branch.Branch.hooks.install_hook('post_push', post_push_hook)
-    branch.Branch.hooks.name_hook(post_push_hook, 'My post_push hook')
+    branch.Branch.hooks.install_hook('post_push', post_push_hook,
+                                     'My post_push hook')
 
 To use this example, create a file named ``push_hook.py``, and stick it in
 ``plugins`` subdirectory of your configuration directory.  (If you have never
@@ -34,10 +34,9 @@
 single argument, the ``push_result``.
 
 Next, we install the hook.  ``'post_push'`` identifies where we want to install
-the hook, and the second parameter is the hook itself.
-
-Finally, we name the hook.  This is optional, but it means the hook name can
-be used in progress messages and error messages.
+the hook, and the second parameter is the hook itself.  We also give the hook a
+name 'My post_push hook', which can be used in progress messages and error
+messages.
 
 That's it!  The next time you push, it should show "The new revno is...".
 Of course, hooks can be much more elaborate than this, because you have the




More information about the bazaar-commits mailing list