I wrote a tool which generates a git repository containing the D components as submodules:

https://github.com/CyberShadow-D/D

This repository has a linear history, and contains only updates to its submodules. The submodule updates are mainly pull request merge commits, obtained by traversing each repository's commit tree, starting with the master branch, through each commit's first parent. These commits are interwoven in a chronological order, so that all pull requests merged within the same week/day/hour are always neighbored together, regardless of the D component.

The result is a repository which should be much easier to regression-test than individual D components, as there are often D changes which require simultaneous changes to several components. Using this repository with "git bisect run" allows easily pinpointing the pull request which introduced a regression.

The repository updates hourly. The tool itself can be found here:

https://github.com/CyberShadow/D-dot-git

TODO: support branches other than master. This will expose release tags currently hidden on release branches (however, I'm not sure how useful that would be to git bisect in this particular case).

Reply via email to