summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8b4eb6b)
raw | patch | inline | side by side (parent: 8b4eb6b)
author | Brandon Casey <casey@nrlssc.navy.mil> | |
Mon, 22 Sep 2008 23:34:26 +0000 (18:34 -0500) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Tue, 23 Sep 2008 08:53:07 +0000 (01:53 -0700) |
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-prune.c | patch | blob | history |
diff --git a/builtin-prune.c b/builtin-prune.c
index c767a0ac8930166315c26d8ece2e72b4f1942d55..1663f8bdb1e27713bab6cf7a16ca15cfcfc1abef 100644 (file)
--- a/builtin-prune.c
+++ b/builtin-prune.c
static int show_only;
static unsigned long expire;
-static int prune_tmp_object(char *path, const char *filename)
+static int prune_tmp_object(const char *path, const char *filename)
{
const char *fullpath = mkpath("%s/%s", path, filename);
if (expire) {
/*
* Write errors (particularly out of space) can result in
* failed temporary packs (and more rarely indexes and other
- * files begining with "tmp_") accumulating in the
- * object directory.
+ * files begining with "tmp_") accumulating in the object
+ * and the pack directories.
*/
-static void remove_temporary_files(void)
+static void remove_temporary_files(const char *path)
{
DIR *dir;
struct dirent *de;
- char* dirname=get_object_directory();
- dir = opendir(dirname);
+ dir = opendir(path);
if (!dir) {
- fprintf(stderr, "Unable to open object directory %s\n",
- dirname);
+ fprintf(stderr, "Unable to open directory %s\n", path);
return;
}
while ((de = readdir(dir)) != NULL)
if (!prefixcmp(de->d_name, "tmp_"))
- prune_tmp_object(dirname, de->d_name);
+ prune_tmp_object(path, de->d_name);
closedir(dir);
}
"expire objects older than <time>"),
OPT_END()
};
+ char *s;
save_commit_buffer = 0;
init_revisions(&revs, prefix);
prune_object_dir(get_object_directory());
prune_packed_objects(show_only);
- remove_temporary_files();
+ remove_temporary_files(get_object_directory());
+ s = xstrdup(mkpath("%s/pack", get_object_directory()));
+ remove_temporary_files(s);
+ free(s);
return 0;
}