builddependencies: consider all divergent successors
We were only considering one. In test-evolve-abort-conentdiv.t:165,
the input revs were {5, 8} and dependency dict was {8: set([]), 5:
set([10])}, which is a little weird (10 is not in the input set). It
still worked because the callers used it (they seemed to only care if
there were *any* dependencies).
This patch fixes the issue by considering all successors. That means
the dependency dict will be {8: set([]), 5: set([8, 10])} after this
patch. The next patch will remove the 10 from that set.
====================================
Testing head checking code: Case A-1
====================================
Mercurial checks for the introduction of new heads on push. Evolution comes
into play to detect if existing branches on the server are being replaced by
some of the new one we push.
This case is part of a series of tests checking this behavior.
Category A: simple case involving a branch being superceeded by another.
TestCase 1: single-changeset branch
.. old-state:
..
.. * 1 changeset branch
..
.. new-state:
..
.. * 1 changeset branch succeeding to A
..
.. expected-result:
..
.. * push allowed
..
.. graph-summary:
..
.. A ø⇠◔ A'
.. |/
.. ●
$ . $TESTDIR/testlib/push-checkheads-util.sh
Test setup
----------
$ mkdir A1
$ cd A1
$ setuprepos
creating basic server and client repo
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd client
$ hg up 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ mkcommit A1
created new head
$ hg debugobsolete `getid "desc(A0)" ` `getid "desc(A1)"`
obsoleted 1 changesets
$ hg log -G --hidden
@ f6082bc4ffef (draft): A1
|
| x 8aaa48160adc (draft): A0
|/
o 1e4be0697311 (public): root
Actual testing
--------------
$ hg push
pushing to $TESTTMP/A1/server (glob)
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
1 new obsolescence markers
obsoleted 1 changesets
$ cd ../..