On 11/26/2020 3:41 PM, Rafael Silva wrote: > The "git maintenance run" and "git maintenance start/stop" commands > holds a file-based lock at the .git/maintenance.lock and > .git/schedule.lock respectively. These locks are used to ensure only > one maintenance process is executed at the time as both operations > involves writing data into the git repository. > > The path to the lock file is built using > "the_repository->objects->odb->path" that results in SEGFAULT when we > have no repository available as "the_repository->objects->odb" is > set to NULL. > > Let's teach maintenance command to use RUN_SETUP option that will > provide the validation and fail when running outside of a repository. > Hence fixing the SEGFAULT for all three operations and making the > behaviour consistent across all subcommands. > > Setting the RUN_SETUP also provides the same protection for all > subcommands given that the "register" and "unregister" also requires to > be executed inside a repository. > > Furthermore let's remove the local validation implemented by the > "register" and "unregister" as this will not be required anymore with > the new option. Thank you for this very clean patch! Reviewed-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx>