• Jonathan Nieder's avatar
    gc: remove gc.pid file at end of execution · 4c5baf02
    Jonathan Nieder authored
    This file isn't really harmful, but isn't useful either, and can create
    minor annoyance for the user:
    
    * It's confusing, as the presence of a *.pid file often implies that a
      process is currently running. A user running "ls .git/" and finding
      this file may incorrectly guess that a "git gc" is currently running.
    
    * Leaving this file means that a "git gc" in an already gc-ed repo is
      no-longer a no-op. A user running "git gc" in a set of repositories,
      and then synchronizing this set (e.g. rsync -av, unison, ...) will see
      all the gc.pid files as changed, which creates useless noise.
    
    This patch unlinks the file after the garbage collection is done, so that
    gc.pid is actually present only during execution.
    
    Future versions of Git may want to use the information left in the gc.pid
    file (e.g. for policies like "don't attempt to run a gc if one has
    already been ran less than X hours ago"). If so, this patch can safely be
    reverted. For now, let's not bother the users.
    Explained-by: default avatarMatthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: default avatarJonathan Nieder <jrnieder@gmail.com>
    Improved-by: Duy Nguyen's avatarNguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    4c5baf02
t6500-gc.sh 623 Bytes