sebastianbergmann/diff
This system is a PHP-based diff library that generates and formats text diffs using the Myers linear-space algorithm. It provides pluggable output builders for producing both loose and strict unified diff formats, alongside a robust exception hierarchy for error handling. The codebase is supported by modernized build automation, static analysis tooling, and comprehensive unit and integration tests.
69.8
Adequate · 2 August 2026
1.6k
lines of production code
PHP
primary language
1
bus factor · 27 authors in all
3
measurements over time
How it got here
2013 · Build modernization and diff engine refactoring
This period focused on modernizing the project's build infrastructure by adopting Phive and Composer for dependency management, while simultaneously refactoring the core diff engine to use the Myers linear-space algorithm for improved performance. The changes included adding static analysis configurations, updating PHP version requirements, and introducing comprehensive unit tests for the new internal classes.
4 changes
2014–2017 · Diff output and error handling
This period focused on introducing new diff output builders that allow users to generate loose or strict unified diffs, alongside a custom exception hierarchy for more granular error handling. Comprehensive test suites were added to verify the new output formats and exception types.
4 changes
2018–2026 · Static analysis and test coverage improvements
This period focused on enhancing code quality and reliability by upgrading the static analysis tooling from Psalm to PHPStan, introducing stricter type-checking rules, and expanding test coverage for exception handling, diff generation, and utility functions. The build system was also extended with a script to automate release note extraction from the changelog.
7 changes
Survey your own repository
sebastianbergmann/diff was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.
About this page
- The description of this project is derived from its own commit history, not from its README.
- The score is its highest published measurement, taken on 2 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit cf7b96cb6b — the exact code this score is about.
- Scored under rubric rubric-2026.08.18. Score the same commit under that rubric and you get the same number.