Bisection is a well known method of localizing which commit caused a regression in a code repository. git-bisect is a particularly used tool for this problem in git repositories. However it is often the case that the failure is probabilistic in nature - either because we don't have a reliable reproducer of the failure and thus not reproducing a problem on a particular commit does not mean the problem is not still present there, or because of inherent variability of e.g. performance regressions. Bisection for such failures is problematic as it takes only one false result for the bisection to end up in an unrelated part of code history. So in these cases we usually have to heavily extend runtime of a reproducer or do multiple test runs or multiple bisection runs to minimize a chance of error.

The aim of the project is to implement stochastic bisection for git. I.e., a method that will count with the fact that test results at each point of code history have some error rate and provide points in code history to test to find commit in code history that is with high probability introducing the regression in the smallest possible number of tests. Then we can use this method for bisection of performance problems in our performance testing grid Marvin.

Goals for this Hackweek:

  • research state of the art in stochastic problem finding (it is a method used in various fields of engineering)
  • design algorithm computing next point in history to test given previous test results and their confidence
  • research how git-bisect works internally
  • integrate the algorithm with git-bisect

Looking for hackers with the skills:

git bisection performance statistics

This project is part of:

Hack Week 20

Activity

  • over 3 years ago: mkubecek liked this project.
  • over 3 years ago: okurz liked this project.
  • almost 4 years ago: llansky3 liked this project.
  • almost 4 years ago: jankara started this project.
  • almost 4 years ago: jankara added keyword "statistics" to this project.
  • almost 4 years ago: jankara added keyword "git" to this project.
  • almost 4 years ago: jankara added keyword "bisection" to this project.
  • almost 4 years ago: jankara added keyword "performance" to this project.
  • almost 4 years ago: jankara originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Explore the integration between OBS and GitHub by pdostal

    Project Description

    The goals:

    1) When GitHub pull request is created or modified the OBS project will be forked and the build results reported back to GitHub. 2) When new version of the GitHub project will be published the OBS will redownload the source and rebuild the project.

    Goal for this Hackweek

    Do as much as possible, blog about it and maybe use it another existing project.

    Resources


    Port git-fixup to POSIX shell script and submit to git/git by mcepl

    Description

    https://github.com/keis/git-fixup is an exceedingly useful program, which I use daily, and I would love to every git user could bask in its awesomeness. Alas, it is a bash script, so it is not appropriate for the inclusion in git proper.

    Goals

    Port the script to plain POSIX shell and submit for consideration to git@vger.kernel.org

    Resources