From db535d0a7dfa3e5c2ded4a408234623b0241de00 Mon Sep 17 00:00:00 2001 From: lhchavez Date: Sun, 1 Jan 2017 12:45:02 -0800 Subject: [PATCH] Delete temporary packfile in indexer This change deletes the temporary packfile that the indexer creates to avoid littering the pack/ directory with garbage. --- src/indexer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/indexer.c b/src/indexer.c index a3a866989..27f49473a 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -151,6 +151,12 @@ cleanup: if (fd != -1) p_close(fd); + if (git_buf_is_allocated(&tmp_path)) + (void)p_unlink(git_buf_cstr(&tmp_path)); + + if (idx->pack != NULL) + (void)p_unlink(idx->pack->pack_name); + git_buf_free(&path); git_buf_free(&tmp_path); git__free(idx); @@ -1084,6 +1090,9 @@ void git_indexer_free(git_indexer *idx) git_vector_free_deep(&idx->deltas); + /* Try to delete the temporary file in case it was not committed. */ + (void)p_unlink(idx->pack->pack_name); + if (!git_mutex_lock(&git__mwindow_mutex)) { git_packfile_free(idx->pack); git_mutex_unlock(&git__mwindow_mutex);