gc: reject if another gc is running, unless --force is given
This may happen when `git gc --auto` is run automatically, then the user, to avoid wait time, switches to a new terminal, keeps working and `git gc --auto` is started again because the first gc instance has not clean up the repository. This patch tries to avoid multiple gc running, especially in --auto mode. In the worst case, gc may be delayed 12 hours if a daemon reuses the pid stored in gc.pid. kill(pid, 0) support is added to MinGW port so it should work on Windows too. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f59bebb78e
commit
64a99eb476
@ -9,7 +9,7 @@ git-gc - Cleanup unnecessary files and optimize the local repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]
|
||||
'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] [--force]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -71,6 +71,10 @@ automatic consolidation of packs.
|
||||
--quiet::
|
||||
Suppress all progress reports.
|
||||
|
||||
--force::
|
||||
Force `git gc` to run even if there may be another `git gc`
|
||||
instance running on this repository.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
|
Reference in New Issue
Block a user