Implement consistency check for refs
- Mentors
- Patrick Steinhardt, KarthikNayak
- Organization
- Git
- Technologies
- c, shell
- Topics
- SCM
The project addresses the issue that the current git-fsck command cannot detect corruption in the "packed-refs" file and lacks explicit checks for the ref database, especially with the introduction of the new "retable" backend format.
The solution involves creating an infrastructure that allows for backend-specific consistency checks for refs. This will include checks for both the existing "file" backend and the new "retable" backend. The project will leverage Git's polymorphism in handling refs to ensure that all ref names are conformant and to prevent directory/file conflicts among ref names. Additionally, it will ensure the "packed-refs" file is well-formatted and that refs are ordered lexicographically.
Deliverables for the project include the infrastructure setup for backend-specific checks, implementation of generic ref checks, and unit tests to ensure correctness. The project is expected to take 175 to 350 hours, depending on whether checks for the "retable" backend are implemented.