Rev 3407: (jam) Make Graph.find_differences() correct, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue May 6 00:16:10 BST 2008


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

------------------------------------------------------------
revno: 3407
revision-id:pqm at pqm.ubuntu.com-20080505231558-7w3zaehbvtcjk7jv
parent: pqm at pqm.ubuntu.com-20080505041432-g51fjlrfth74arug
parent: john at arbash-meinel.com-20080505210635-gddkmsfse736rf23
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-05-06 00:15:58 +0100
message:
  (jam) Make Graph.find_differences() correct,
  	and create a Graph.find_unique_ancestors function.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/debug.py                debug.py-20061102062349-vdhrw9qdpck8cl35-1
  bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
  bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
  bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
  bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
  bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
  bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.45
    revision-id:john at arbash-meinel.com-20080505210635-gddkmsfse736rf23
    parent: john at arbash-meinel.com-20080505204238-598hf62krc3wwcin
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: submitted
    timestamp: Mon 2008-05-05 16:06:35 -0500
    message:
      Update the osutils.resource test for debug strings
    modified:
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
    ------------------------------------------------------------
    revno: 3377.3.44
    revision-id:john at arbash-meinel.com-20080505204238-598hf62krc3wwcin
    parent: john at arbash-meinel.com-20080505202906-0utn8d1ti6458rea
    parent: pqm at pqm.ubuntu.com-20080505041432-g51fjlrfth74arug
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: submitted
    timestamp: Mon 2008-05-05 15:42:38 -0500
    message:
      merge bzr.dev, resolve NEWS
    added:
      bzrlib/tests/branch_implementations/test_check.py test_check.py-20080429151303-1sbfclxhddpz0tnj-1
      bzrlib/tests/branch_implementations/test_reconcile.py test_reconcile.py-20080429161555-qlmccuyeyt6pvho7-1
      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/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      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/config.py               config.py-20051011043216-070c74f4e9e338e8
      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/hooks.py                hooks.py-20070325015548-ix4np2q0kd8452au-1
      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/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/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/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/store/revision/knit.py  knit.py-20060303020652-de5fa299e941a3c7
      bzrlib/store/revision/text.py  text.py-20060303020652-e49155f0da4d14ab
      bzrlib/symbol_versioning.py    symbol_versioning.py-20060105104851-9ecf8af605d15a80
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
      bzrlib/tests/blackbox/test_hooks.py test_hooks.py-20080308163236-xljgf9j41hik1x21-1
      bzrlib/tests/blackbox/test_reconcile.py test_fix.py-20060223013051-9a188e15a5ee9451
      bzrlib/tests/blackbox/test_version.py test_version.py-20070312060045-ol7th9z035r3im3d-1
      bzrlib/tests/branch_implementations/__init__.py __init__.py-20060123013057-b12a52c3f361daf4
      bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
      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/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_config.py    testconfig.py-20051011041908-742d0c15d8d8c8eb
      bzrlib/tests/test_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_hooks.py     test_hooks.py-20070628030849-89rtsbe5dmer5npz-1
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
      bzrlib/tests/test_lockable_files.py test_lockable_files.py-20051225183927-365c7fd99591caf1
      bzrlib/tests/test_reconcile.py test_reconcile.py-20060225054842-50aa618584a86f26
      bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-2
      bzrlib/tests/test_remote.py    test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
      bzrlib/tests/test_smart.py     test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
      bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
      bzrlib/tests/test_store.py     teststore.py-20050826022702-f6caadb647395769
      bzrlib/tests/transport_util.py transportutil.py-20070525113600-5v2igk89s8fensom-1
      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/tests/workingtree_implementations/test_basis_inventory.py test_basis_inventory.py-20051218151655-3650468941091309
      bzrlib/tests/workingtree_implementations/test_commit.py test_commit.py-20060421013633-1610ec2331c8190f
      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/default.css                default.css-20060622101119-tgwtdci8z769bjb9-1
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/developers/network-protocol.txt networkprotocol.txt-20070903044232-woustorrjbmg5zol-1
      doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
      doc/en/user-guide/hooks.txt    hooks.txt-20070829200551-7nr6e5a1io6x78uf-1
      doc/en/user-guide/sending_changes.txt sending_changes.txt-20071123154453-dk2mjhrg1vpjm5w2-4
    ------------------------------------------------------------
    revno: 3377.3.43
    revision-id:john at arbash-meinel.com-20080505202906-0utn8d1ti6458rea
    parent: john at arbash-meinel.com-20080501204100-r9pw4d1znr8g728x
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: submitted
    timestamp: Mon 2008-05-05 15:29:06 -0500
    message:
      Ian's review feedback
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.42
    revision-id:john at arbash-meinel.com-20080501204100-r9pw4d1znr8g728x
    parent: john at arbash-meinel.com-20080501201042-ep7n9ix7ebe5nlpk
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-05-01 15:41:00 -0500
    message:
      Get the tests to actually work, and get the code to go along with.
      
      Turns out I was using an api wrong anyway, but now the tests pass.
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.41
    revision-id:john at arbash-meinel.com-20080501201042-ep7n9ix7ebe5nlpk
    parent: john at arbash-meinel.com-20080501200437-yfprhb36wggjq50n
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-05-01 15:10:42 -0500
    message:
      Fix up a couple of the tests
    modified:
      bzrlib/tests/blackbox/test_status.py teststatus.py-20050712014354-508855eb9f29f7dc
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.40
    revision-id:john at arbash-meinel.com-20080501200437-yfprhb36wggjq50n
    parent: john at arbash-meinel.com-20080501193204-eqsmaw2t6dh2q7ul
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-05-01 15:04:37 -0500
    message:
      a little bit more cleanup, change how ghosts are handled
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.39
    revision-id:john at arbash-meinel.com-20080501193204-eqsmaw2t6dh2q7ul
    parent: john at arbash-meinel.com-20080501174214-o12sdv6548vvxems
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-05-01 14:32:04 -0500
    message:
      More tweaks for show_pending_merges
      
      Display the pending merge itself right away.
      Factor out the sorting code to a helper function.
      Pull out common operations to outside the loop.
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.38
    revision-id:john at arbash-meinel.com-20080501174214-o12sdv6548vvxems
    parent: john at arbash-meinel.com-20080430221814-32fn9bgqi2t5psj6
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-05-01 12:42:14 -0500
    message:
      Pull out terminal width from the inner loop of show_pending_merges
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.37
    revision-id:john at arbash-meinel.com-20080430221814-32fn9bgqi2t5psj6
    parent: john at arbash-meinel.com-20080427142151-24uxl2vmwbs93qoa
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Wed 2008-04-30 17:18:14 -0500
    message:
      Ian's first review comments.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.36
    revision-id:john at arbash-meinel.com-20080427142151-24uxl2vmwbs93qoa
    parent: john at arbash-meinel.com-20080425205150-zsytbcx0nol0bilw
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Sun 2008-04-27 09:21:51 -0500
    message:
      Small updates, try to write a test for the race condition.
      
      So far I have been unsuccessful, it is very hard to artificially
      create the race that I found in bzr.dev.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.35
    revision-id:john at arbash-meinel.com-20080425205150-zsytbcx0nol0bilw
    parent: john at arbash-meinel.com-20080425203237-c888ix7p0hxza5b3
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Fri 2008-04-25 15:51:50 -0500
    message:
      Add a test that exercises the multiple interesting unique code
      
      The previous tests never entered the second loop, because they only had
      a single interesting graph path. Still missing some tests, though
      everything passes for bzr.dev.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.34
    revision-id:john at arbash-meinel.com-20080425203237-c888ix7p0hxza5b3
    parent: john at arbash-meinel.com-20080425190324-sa68d4ihd5te2pnb
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Fri 2008-04-25 15:32:37 -0500
    message:
      When collapsing common revisions into another searcher,
      we need to make sure that anything considered 'common' is also common
      with the common-to-all-unique-node searcher.
      This does not include a test case, though I really want to.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.33
    revision-id:john at arbash-meinel.com-20080425190324-sa68d4ihd5te2pnb
    parent: john at arbash-meinel.com-20080425175727-ll3u7g7qqegvy8us
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Fri 2008-04-25 14:03:24 -0500
    message:
      Add some logging with -Dgraph
    modified:
      bzrlib/debug.py                debug.py-20061102062349-vdhrw9qdpck8cl35-1
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.32
    revision-id:john at arbash-meinel.com-20080425175727-ll3u7g7qqegvy8us
    parent: john at arbash-meinel.com-20080425024812-3libjfzgsypi3l3l
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Fri 2008-04-25 12:57:27 -0500
    message:
      try collapsing the common revisions into a single searcher.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.31
    revision-id:john at arbash-meinel.com-20080425024812-3libjfzgsypi3l3l
    parent: john at arbash-meinel.com-20080425021017-49mxjzvgk0enbhey
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 21:48:12 -0500
    message:
      change the status code to use find_unique_ancestors()
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.30
    revision-id:john at arbash-meinel.com-20080425021017-49mxjzvgk0enbhey
    parent: john at arbash-meinel.com-20080425020453-4txgyv9utbd73y21
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 21:10:17 -0500
    message:
      Can we avoid the extra _do_query in start_searching?
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.29
    revision-id:john at arbash-meinel.com-20080425020453-4txgyv9utbd73y21
    parent: john at arbash-meinel.com-20080425015422-k2xb2p6k6sgxwt5s
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 21:04:53 -0500
    message:
      Revert the _find_any_seen change.
      The overhead of combining the searchers swamps the benefits
      of combining the search.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.28
    revision-id:john at arbash-meinel.com-20080425015422-k2xb2p6k6sgxwt5s
    parent: john at arbash-meinel.com-20080425004033-y7p8ol60qntr1pyn
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 20:54:22 -0500
    message:
      Try using _find_any_seen_ancestors,
      which pulls out the loop around find_seen_ancestors.
      This may not be a net win yet.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.27
    revision-id:john at arbash-meinel.com-20080425004033-y7p8ol60qntr1pyn
    parent: john at arbash-meinel.com-20080425003535-l6a6okvcdhn8f2sj
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 19:40:33 -0500
    message:
      some simple updates
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.26
    revision-id:john at arbash-meinel.com-20080425003535-l6a6okvcdhn8f2sj
    parent: john at arbash-meinel.com-20080424233649-xyyjic178u9zuidd
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 19:35:35 -0500
    message:
      Found a graph leak.
      
      Needed set.update() rather than set =
      The results were still correct, but it would generally cause
      a large leak into the rest of the graph.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.25
    revision-id:john at arbash-meinel.com-20080424233649-xyyjic178u9zuidd
    parent: john at arbash-meinel.com-20080424230555-h2alm4wl2zc7e5l9
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 18:36:49 -0500
    message:
      A few more minimal ancestry checks
    modified:
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.24
    revision-id:john at arbash-meinel.com-20080424230555-h2alm4wl2zc7e5l9
    parent: john at arbash-meinel.com-20080424221718-gaa2txy3xinmvh6m
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 18:05:55 -0500
    message:
      For some reason find_unique_ancestors is much slower than it should be.
      Start trying to assert that it doesn't access more ancestry than
      it needs to.
    modified:
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.23
    revision-id:john at arbash-meinel.com-20080424221718-gaa2txy3xinmvh6m
    parent: john at arbash-meinel.com-20080424170642-5w967z1r65gtzy2j
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 17:17:18 -0500
    message:
      Implement find_unique_ancestors using more explicit graph searching.
      
      Copied a lot of the loops from the find_difference code, but
      could streamline it a bit for the different logic
      (we only have to track one side of the differences, not both)
      
      I need to do more complete testing on bzr.dev, but so far
      it looks pretty good.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.22
    revision-id:john at arbash-meinel.com-20080424170642-5w967z1r65gtzy2j
    parent: john at arbash-meinel.com-20080424165813-nzlmhwbj05c8ao1c
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 12:06:42 -0500
    message:
      include some tests using the complex graphs
    modified:
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.21
    revision-id:john at arbash-meinel.com-20080424165813-nzlmhwbj05c8ao1c
    parent: john at arbash-meinel.com-20080423230918-3dwdjgum1qm2nntb
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_unique_ancestors
    timestamp: Thu 2008-04-24 11:58:13 -0500
    message:
      Simple brute-force implementation of find_unique_ancestors
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.20
    revision-id:john at arbash-meinel.com-20080423230918-3dwdjgum1qm2nntb
    parent: john at arbash-meinel.com-20080423222403-sqa8rs4d8eqdk0xi
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 18:09:18 -0500
    message:
      comment cleanups.
      
      I looked at removing the extra find_seen_ancestors() calls as
      part of new_common_unique, but they turn out to be very
      beneficial.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.19
    revision-id:john at arbash-meinel.com-20080423222403-sqa8rs4d8eqdk0xi
    parent: john at arbash-meinel.com-20080423221521-zya0eumw6tmo2ii6
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 17:24:03 -0500
    message:
      Start culling unique searchers once they converge.
      
      This shows a large improvement when there are lots of searchers.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.18
    revision-id:john at arbash-meinel.com-20080423221521-zya0eumw6tmo2ii6
    parent: john at arbash-meinel.com-20080423221309-etwdaic43iytt8n1
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 17:15:21 -0500
    message:
      We don't actually use common_ancestors_unique, so get rid of it.
      
      It was meant to avoid redoing work, but pretty much had 0 hit rate.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.17
    revision-id:john at arbash-meinel.com-20080423221309-etwdaic43iytt8n1
    parent: john at arbash-meinel.com-20080423220319-gy4c5u2zwqy4g687
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 17:13:09 -0500
    message:
      Keep track of the intersection of unique ancestry,
      rather than checking it again all the time.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.16
    revision-id:john at arbash-meinel.com-20080423220319-gy4c5u2zwqy4g687
    parent: john at arbash-meinel.com-20080423215543-f4wrfck5ag25pjjq
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 17:03:19 -0500
    message:
      small cleanups
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.15
    revision-id:john at arbash-meinel.com-20080423215543-f4wrfck5ag25pjjq
    parent: john at arbash-meinel.com-20080423214212-i63wv3x7s27ekjim
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 16:55:43 -0500
    message:
      minor update
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.14
    revision-id:john at arbash-meinel.com-20080423214212-i63wv3x7s27ekjim
    parent: john at arbash-meinel.com-20080423203341-4qlndx8u2zu21yz0
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 16:42:12 -0500
    message:
      Take another tack on _search_for_extra
      
      All we really care about is getting to the point where
      all common searchers have passed the unique nodes.
      So start all unique searchers with as much ancestry as
      possible.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.13
    revision-id:john at arbash-meinel.com-20080423203341-4qlndx8u2zu21yz0
    parent: john at arbash-meinel.com-20080423022725-rtmlxj6nt36xn79q
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Wed 2008-04-23 15:33:41 -0500
    message:
      Change _search_for_extra_common slightly.
      
      The official statement is that you can stop searching common nodes
      once all common tips are ancestors of *all* unique nodes.
      We need to make sure that we stop the common searchers once
      they find nodes that are ancestors, and then we can only
      exit the common search loop when they have finished.
      
      All tests pass, need to see if it is still 'efficient'.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
    ------------------------------------------------------------
    revno: 3377.3.12
    revision-id:john at arbash-meinel.com-20080423022725-rtmlxj6nt36xn79q
    parent: john at arbash-meinel.com-20080423022026-mpxr9mafum9rcocz
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 21:27:25 -0500
    message:
      Remove the helpful but ugly thunk
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.11
    revision-id:john at arbash-meinel.com-20080423022026-mpxr9mafum9rcocz
    parent: john at arbash-meinel.com-20080422225828-l6qigns5f4t81dbi
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 21:20:26 -0500
    message:
      Committing a debug thunk that was very helpful
      
      find_seen_ancestors() should *not* be accessing the real_provider() as it
      should only be looking at the part of the graph that has already been
      accessed.
      
      However, in some of our final checks, the list passed in included some of
      the stuff we had only peaked at.
      
      This drops the time for "bzr status" after a simple merge down from 5.2s down
      to 1.76s. (Before this fix it was closer to 6-11s for my "improved" form).
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.10
    revision-id:john at arbash-meinel.com-20080422225828-l6qigns5f4t81dbi
    parent: john at arbash-meinel.com-20080422210318-z0mc5q4hdxsur9qm
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 17:58:28 -0500
    message:
      Tweak _BreadthFirstSearcher.find_seen_ancestors()
      
      The old function stepped too far. It would query for the very tip nodes,
      which had not actually been probed for yet. This was further exacerbated,
      because it was using a _BreadthFirstSearcher to do the sub-iteration,
      which probably had the same problem.
      
      Overall, seems to be considerably faster.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.9
    revision-id:john at arbash-meinel.com-20080422210318-z0mc5q4hdxsur9qm
    parent: john at arbash-meinel.com-20080422204514-bm0v3g592dapbx2s
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 16:03:18 -0500
    message:
      Small tweaks to _do_query
      Don't call set.update() with a generator, as it is fairly slow, especially
      if the generator is likely to be empty.
      Only 1 in 4 had data, and lsprof claimed 4s => 0.3s for set.update(),
      and 7.3 => 1.13 as the overhead in _do_query versus just the
      get_parent_map() cost.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.8
    revision-id:john at arbash-meinel.com-20080422204514-bm0v3g592dapbx2s
    parent: john at arbash-meinel.com-20080422203133-xra4zdxr7g5jvlcq
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:45:14 -0500
    message:
      Fix a bug with re-using the same variable name is status.py
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.7
    revision-id:john at arbash-meinel.com-20080422203133-xra4zdxr7g5jvlcq
    parent: john at arbash-meinel.com-20080422203057-a907ny2ytrw008c7
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:31:33 -0500
    message:
      rewrap
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.6
    revision-id:john at arbash-meinel.com-20080422203057-a907ny2ytrw008c7
    parent: john at arbash-meinel.com-20080422203026-s8kpv2f9pm1cjocb
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:30:57 -0500
    message:
      Switch the status code to use get_parent_map instead of get_parents()
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
    ------------------------------------------------------------
    revno: 3377.3.5
    revision-id:john at arbash-meinel.com-20080422203026-s8kpv2f9pm1cjocb
    parent: john at arbash-meinel.com-20080422201019-lqfw2p8dic55an0e
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:30:26 -0500
    message:
      Fix a latent bug in Graph.get_parents()
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.4
    revision-id:john at arbash-meinel.com-20080422201019-lqfw2p8dic55an0e
    parent: john at arbash-meinel.com-20080422200449-mknvyea4ndx8uxw0
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:10:19 -0500
    message:
      Fix stupid ordering in find_seen_ancestors
      
      Don't call stop_searching_any on all ancestors, call it on all of them 
      after you have sorted it out.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.3
    revision-id:john at arbash-meinel.com-20080422200449-mknvyea4ndx8uxw0
    parent: john at arbash-meinel.com-20080422185952-nxeuwil7ykk5krna
    parent: john at arbash-meinel.com-20071204195523-3tong8h1fwvx0xgy
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 15:04:49 -0500
    message:
      merge in the status uses find_differences code, though it exposes that find_differences is slower than whole-ancestry work
    modified:
      bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
      bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
        ------------------------------------------------------------
        revno: 3074.3.2
        revision-id:john at arbash-meinel.com-20071204195523-3tong8h1fwvx0xgy
        parent: john at arbash-meinel.com-20071204190203-vh8zea8nt8ravz0z
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: status_after_merge_172657
        timestamp: Tue 2007-12-04 13:55:23 -0600
        message:
          update the ignore list in one-go.
          Add a test that ancestors that are already listed are properly hidden.
        modified:
          bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
          bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
        ------------------------------------------------------------
        revno: 3074.3.1
        revision-id:john at arbash-meinel.com-20071204190203-vh8zea8nt8ravz0z
        parent: pqm at pqm.ubuntu.com-20071204035213-2kot5u403spjchen
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: status_after_merge_172657
        timestamp: Tue 2007-12-04 13:02:03 -0600
        message:
          Fix bug #172657, use Graph.find_difference() rather than ancestry set operations.
          When showing pending merges, we can figure out what is new, without having to load the entire
          ancestry and do a set difference.
          This also puts us really close to displaying them properly nested, rather than
          using a single depth for all children of a merge.
        modified:
          bzrlib/status.py               status.py-20050505062338-431bfa63ec9b19e6
          bzrlib/tests/test_status.py    test_status.py-20060516190614-fbf6432e4a6e8aa5
    ------------------------------------------------------------
    revno: 3377.3.2
    revision-id:john at arbash-meinel.com-20080422185952-nxeuwil7ykk5krna
    parent: john at arbash-meinel.com-20080422184821-wd5n1y365ev60lyq
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 13:59:52 -0500
    message:
      find_difference is fixed by updating _find_border_ancestors.... is that reasonable?
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
    ------------------------------------------------------------
    revno: 3377.3.1
    revision-id:john at arbash-meinel.com-20080422184821-wd5n1y365ev60lyq
    parent: pqm at pqm.ubuntu.com-20080422120059-sony5sthnlewabge
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: find_differences
    timestamp: Tue 2008-04-22 13:48:21 -0500
    message:
      Bring in some of the changes from graph_update and graph_optimization
      
      _BreadthFirstSearcher.find_seen_ancestors takes a list/set instead of a single node.
      find_difference() is still broken, but mostly just in ways that it was already broken.
    modified:
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1

Diff too large for email (1283 lines, the limit is 1000).



More information about the bazaar-commits mailing list