On 05/31, Brandon Williams wrote: > Given the vast interest expressed when I sent out my RFC series I decided it > would be worth it to invest more time to making a repository object a reality. > > This series is an extension of the last series I sent out (in that ls-files is > converted to working on submodules in-process using repository objects instead > of spawning a child process to do the work). The big difference from the RFC > series is that I went through and did the work to migrate key repository state > from global variables in 'environment.c' to being stored in a repository object > itself. I migrated the bits of state that seemed reasonable for this series, > there is still a lot of global state which could be migrated in the future. > > I do think that we need to be slightly cautious about moving global state into > the repository object though, I don't want 'struct repo' to simply become a > kitchen sink where everything gets dumped. But this is just a warning for the > future. > > Since this is a v1 I'm fairly certain that it still has a lot of rough edges > (like I think I need to write better commit messages, and we should probably > have more comments documenting object fields/contract) but I want to get the > review process started sooner rather than later since I'm sure people will have > opinions (e.g. should it be called 'struct repo' or 'struct repository'?!). > > So here it is! Thank you so much for taking the time review this, any and all > comments would be appreciated. > > - Brandon > > Patches [01-14] -> Introducing the Repository object and migrating some state > to be stored in 'the_repository'. > > Patches [15-31] -> Converting ls-files to use 'struct repo' in order to recurse > submodules in-process. For those who don't like reviewing patches in email form, you can find this series at: https://github.com/bmwill/git/tree/repository-object -- Brandon Williams