Hi All, I am interested in "Implement consistency checks for refs" GSoC idea. However, implementing a feautre is much harder. So I wanna ask you some questions to better work on. As [1] shows, I think the idea is easy to understand. We need to ensure the consistency of the refs. The current `git-fsck` only checks the connectivity from ref to the object file. There is a possiblity that ref itself could be corrupted. And we should avoid it through this project. I have read some source codes. Based on what I have learned, I know there are two backends. One is file and another is reftable. I have no idea about the reftable currently. So at now, I will focus on the file backend. I think the principle behind the `git-fsck` is that it will traverse every object file, read its content and use SHA-1 to hash the content and compare the value with the stored ref value. So if we want to add consistency checks for refs. We may need to add a new file to store the last commit state (not only last commit state, do we need to consider the stash state). However, from my perspective, it's a bad idea to use a file to store the refs' states and we cannot use object file to check whether the ref is corrupted. So this is my first question, what mechanism should we use to provide consistency? And to what extend for the consistency. And I think this mechanism should be general for both text-based and binary-based refs. And I have a more general qeustion, I think I need understand `fsck.c` and of couse the reftable format. However, I am confused whether I need to understand the ref internal. And could you please provide me more infomration to make this idea more clear. Thanks, Jialuo [1] https://lore.kernel.org/git/ZakIPEytlxHGCB9Y@tanuki/