Clean up old garbage before GC Check for the existence of: - incoming files - keep files - tmp files And delete them if they are older than configured number of seconds Change-Id: Ie088e5a2abf3150d60c5974e8f00f1c55d7510e5
diff --git a/maintenance/git-gc/scripts/utils.sh b/maintenance/git-gc/scripts/utils.sh index 51f1abc..8ce4bb6 100755 --- a/maintenance/git-gc/scripts/utils.sh +++ b/maintenance/git-gc/scripts/utils.sh
@@ -8,6 +8,9 @@ PRUNE_EXPIRE=${PRUNE_EXPIRE:-""} PRUNE_PACK_EXPIRE=${PRUNE_PACK_EXPIRE:-""} GC_LOCK_EXPIRE_SECONDS=${GC_LOCK_EXPIRE_SECONDS:-"43200"} # 12 hours +INCOMING_EXPIRE_SECONDS=${INCOMING_EXPIRE_SECONDS:-"43200"} # 12 hours +KEEP_EXPIRE_SECONDS=${KEEP_EXPIRE_SECONDS:-"43200"} # 12 hours +TMP_EXPIRE_SECONDS=${TMP_EXPIRE_SECONDS:-"43200"} # 12 hours MAX_HEADS_FOR_BITMAPS=${MAX_HEADS_FOR_BITMAPS:-"300"} function gc_project { @@ -23,6 +26,7 @@ log_env print_stats "$proj" "before" + do_clean_up "$proj" do_gc "$proj" print_stats "$proj" "after" @@ -164,6 +168,24 @@ fi } +function do_clean_up() { + proj=$1 + log_project "$proj" "Checking incoming files older than $INCOMING_EXPIRE_SECONDS seconds" + delete_if_older_than "$INCOMING_EXPIRE_SECONDS" "incoming_*" + + log_project "$proj" "Checking keep files older than $KEEP_EXPIRE_SECONDS seconds" + delete_if_older_than "$KEEP_EXPIRE_SECONDS" "*.keep" + + log_project "$proj" "Checking tmp files older than $TMP_EXPIRE_SECONDS seconds" + delete_if_older_than "$TMP_EXPIRE_SECONDS" "*_tmp" +} + +function delete_if_older_than() { + secondsAgo=$1 + matchName=$2 + find . -type f -name "$matchName" -not -newermt "-$secondsAgo seconds" -print -delete +} + function log_env() { log "######## ENVIRONMENT ########" log "# GC_PROJECT_LIST=${GC_PROJECT_LIST}" @@ -177,6 +199,9 @@ log "# JAVA_ARGS=${JAVA_ARGS}" log "# GC_LOCK_EXPIRE_SECONDS=${GC_LOCK_EXPIRE_SECONDS}" log "# MAX_HEADS_FOR_BITMAPS=${MAX_HEADS_FOR_BITMAPS}" + log "# INCOMING_EXPIRE_SECONDS=${INCOMING_EXPIRE_SECONDS}" + log "# KEEP_EXPIRE_SECONDS=${KEEP_EXPIRE_SECONDS}" + log "# TMP_EXPIRE_SECONDS=${TMP_EXPIRE_SECONDS}" log "############################" }