gc: reject if another gc is running, unless --force is given
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 8 Aug 2013 11:05:38 +0000 (18:05 +0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 9 Aug 2013 16:10:05 +0000 (09:10 -0700)
commit64a99eb4760de2ce2f0c04e146c0a55c34f50f20
treef09135da1c7fab5195cceef09e865599b37b4ffe
parentf59bebb78edb26e4f66c2754bc4d168c5d4ebb4a
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>
Documentation/git-gc.txt
builtin/gc.c
compat/mingw.c