Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
builtin-prune.c: prune temporary packs in <object_dir>/pack directory
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>
builtin-prune.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
8b4eb6b
)
diff --git
a/builtin-prune.c
b/builtin-prune.c
index c767a0ac8930166315c26d8ece2e72b4f1942d55..1663f8bdb1e27713bab6cf7a16ca15cfcfc1abef 100644
(file)
--- a/
builtin-prune.c
+++ b/
builtin-prune.c
@@
-13,7
+13,7
@@
static const char * const prune_usage[] = {
static int show_only;
static unsigned long expire;
static int show_only;
static unsigned long expire;
-static int prune_tmp_object(char *path, const char *filename)
+static int prune_tmp_object(c
onst c
har *path, const char *filename)
{
const char *fullpath = mkpath("%s/%s", path, filename);
if (expire) {
{
const char *fullpath = mkpath("%s/%s", path, filename);
if (expire) {
@@
-110,24
+110,22
@@
static void prune_object_dir(const char *path)
/*
* Write errors (particularly out of space) can result in
* failed temporary packs (and more rarely indexes and other
/*
* 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;
{
DIR *dir;
struct dirent *de;
- char* dirname=get_object_directory();
- dir = opendir(
dirname
);
+ dir = opendir(
path
);
if (!dir) {
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_"))
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);
}
closedir(dir);
}
@@
-141,6
+139,7
@@
int cmd_prune(int argc, const char **argv, const char *prefix)
"expire objects older than <time>"),
OPT_END()
};
"expire objects older than <time>"),
OPT_END()
};
+ char *s;
save_commit_buffer = 0;
init_revisions(&revs, prefix);
save_commit_buffer = 0;
init_revisions(&revs, prefix);
@@
-163,6
+162,9
@@
int cmd_prune(int argc, const char **argv, const char *prefix)
prune_object_dir(get_object_directory());
prune_packed_objects(show_only);
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;
}
return 0;
}