Theoretical Analysis of git bisect


연구 분야: Software Development



학회: Latin American Symposium on Theoretical Informatics


초록

In this paper, we consider the problem of finding a regression in a version control system (VCS), such as git. The set of versions is modelled by a Directed Acyclic Graph (DAG) where vertices represent versions of the software, and arcs are the changes between different versions. We assume that somewhere in the DAG, a bug was introduced, which persists in all of its subsequent versions. It is possible to query a vertex to check whether the corresponding version carries the bug. Given a DAG and a bugged vertex, the Regression Search Problem consists in finding the first vertex containing the bug in a minimum number of queries in the worst-case scenario. This problem is known to be NP-hard. We study the algorithm used in git to address this problem, known as git bisect. We prove that in a general setting, git bisect can use an exponentially larger number of queries than an optimal algorithm. We also consider the restriction where all vertices have indegree at most 2 (i.e. where merges are made between at most two branches at a time in the VCS), and prove that in this case, git bisect is a -approximation algorithm, and that this bound is tight. We also provide a better approximation algorithm for this case.


Author Profile
Julien Courtiel

Normandie University UNICAEN ENSICAEN CNRS GREYC Caen France

France
Author Profile
Paul Dorbec

Normandie University UNICAEN ENSICAEN CNRS GREYC Caen France

France
Author Profile
Romain Lecoq

Normandie University UNICAEN ENSICAEN CNRS GREYC Caen France

France

📄 논문 정보

발행 연도 2022년
인용수 0
출판 국가 France
사이트 Springer
좋아요 수 0

연관 논문 목록 (338건)