[PATCH 0 of 6] Implement new revset.bisected() keywords

Yann E. MORIN yann.morin.1998 at anciens.enib.fr
Sat Sep 17 15:27:28 CDT 2011


Hello All!

As previously discussed on the list and on IRC, here is a patchset that
implements new revset.bisected() keywords:

- bisected(range)
  All changesets in the bisection range, including good, bad and
  skipped csets. This is /roughly/ : (good::bad | bad::good)

- bisected(pruned)
  All csets in the above range, that are either good, bad or skipped'
  skipped csets that are not in range are omitted from the result.
  This is /roughly/ : range & (good|bad|skip)

- bisected(untested)
  All csets in the range, that are neither good nor bad nor skipped.
  This is /roughly/ : range & ! (good|bad|skip)

- bisected(ignored)
  All cset that may have an impact on the bisection, but are out of
  the range. For example, a branch that is merged between good and bad,
  but which branch point is out of the range.
  This is /roughly/ :
    ( ::bad - ::good | ::good - ::bad ) & ! range

This patchset is not really final, as I have doubt on the code currently
used to compute the different sets. I am ready to read your comments. ;-)

So far, all the tests I have done are giving the expected results, but I
would like to see a really complex DAG whith corner-cases, where I could
check the different keywords more thouroughly. Would the DAG in the test
'test-bisect2.t' be enough for this?

Also, there is currently no test-suite. If the 'test-bisect2.t' test is
enough (see above), then I'll hack the new keywords tests in there.

 mercurial/revset.py |   2 +-
 mercurial/revset.py |   6 ++++--
 mercurial/revset.py |  32 ++++++++++++++++++++++++++++++--
 mercurial/revset.py |   5 +++++
 mercurial/revset.py |   5 +++++
 mercurial/revset.py |  16 ++++++++++++++--
 6 files changed, 59 insertions(+), 7 deletions(-)

Thank you!

Regards,
Yann E. MORIN.


More information about the Mercurial-devel mailing list