Revert "prune: --grace=time"

This reverts commit 9b088c4e39.

Protecting 'mature' objects does not make it any safer.  We should
admit that git-prune is inherently unsafe when run in parallel with
other operations without involving unwarranted locking overhead,
and with the latest git, even rebase and reset would not immediately
create crufts anyway.
This commit is contained in:
Junio C Hamano 2007-01-21 21:29:44 -08:00
parent 1bb914603a
commit 026aa93818
6 changed files with 12 additions and 48 deletions

View file

@ -8,7 +8,7 @@ git-prune - Prunes all unreachable objects from the object database
SYNOPSIS
--------
'git-prune' [-n] [--grace=<time>]
'git-prune' [-n] [--] [<head>...]
DESCRIPTION
-----------
@ -28,12 +28,6 @@ OPTIONS
Do not remove anything; just report what it would
remove.
--grace=<time>::
Do not prune loose objects that are younger than the
specified time. This gives a grace period to newly
created objects from getting pruned.
////////////////////////////////////////////
\--::
Do not interpret any more arguments as options.
@ -52,7 +46,6 @@ borrows from your repository via its
------------
$ git prune $(cd ../another && $(git-rev-parse --all))
------------
////////////////////////////////////////////
Author
------

View file

@ -5,9 +5,8 @@
#include "builtin.h"
#include "reachable.h"
static const char prune_usage[] = "git-prune [-n] [--grace=time]";
static const char prune_usage[] = "git-prune [-n]";
static int show_only;
static int prune_grace_period;
static int prune_object(char *path, const char *filename, const unsigned char *sha1)
{
@ -39,7 +38,6 @@ static int prune_dir(int i, char *path)
char name[100];
unsigned char sha1[20];
int len = strlen(de->d_name);
struct stat st;
switch (len) {
case 2:
@ -62,11 +60,6 @@ static int prune_dir(int i, char *path)
if (lookup_object(sha1))
continue;
if (prune_grace_period > 0 &&
!stat(mkpath("%s/%s", path, de->d_name), &st) &&
st.st_mtime > prune_grace_period)
continue;
prune_object(path, de->d_name, sha1);
continue;
}
@ -86,25 +79,10 @@ static void prune_object_dir(const char *path)
}
}
static int git_prune_config(const char *var, const char *value)
{
if (!strcmp(var, "gc.prunegrace")) {
if (!strcmp(value, "off"))
prune_grace_period = 0;
else
prune_grace_period = approxidate(value);
return 0;
}
return git_default_config(var, value);
}
int cmd_prune(int argc, const char **argv, const char *prefix)
{
int i;
struct rev_info revs;
prune_grace_period = time(NULL)-24*60*60;
git_config(git_prune_config);
for (i = 1; i < argc; i++) {
const char *arg = argv[i];
@ -112,13 +90,6 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
show_only = 1;
continue;
}
if (!strncmp(arg, "--grace=", 8)) {
if (!strcmp(arg+8, "off"))
prune_grace_period = 0;
else
prune_grace_period = approxidate(arg+8);
continue;
}
usage(prune_usage);
}

View file

@ -96,7 +96,7 @@ test_expect_success setup '
check_have A B C D E F G H I J K L &&
git prune --grace=off &&
git prune &&
check_have A B C D E F G H I J K L &&
@ -115,7 +115,7 @@ test_expect_success rewind '
check_have A B C D E F G H I J K L &&
git prune --grace=off &&
git prune &&
check_have A B C D E F G H I J K L &&
@ -160,7 +160,7 @@ test_expect_success 'reflog expire' '
test_expect_success 'prune and fsck' '
git prune --grace=off &&
git prune &&
check_fsck &&
check_have A B C D E H L &&

View file

@ -55,13 +55,13 @@ test_expect_success setup '
test_expect_success 'pack the source repository' '
git repack -a -d &&
git prune --grace=off
git prune
'
test_expect_success 'pack the destination repository' '
cd victim &&
git repack -a -d &&
git prune --grace=off &&
git prune &&
cd ..
'

View file

@ -22,7 +22,7 @@ echo second > file2 &&
git add file2 &&
git commit -m addition &&
git repack -a -d &&
git prune --grace=off'
git prune'
cd "$base_dir"
@ -56,7 +56,7 @@ echo third > file3 &&
git add file3 &&
git commit -m update &&
git repack -a -d &&
git prune --grace=off'
git prune'
cd "$base_dir"

View file

@ -29,7 +29,7 @@ echo "Hello World" > file1 &&
git add file1 &&
git commit -m "Initial commit" file1 &&
git repack -a -d &&
git prune --grace=off'
git prune'
cd "$base_dir"
@ -39,7 +39,7 @@ echo "foo bar" > file2 &&
git add file2 &&
git commit -m "next commit" file2 &&
git repack -a -d -l &&
git prune --grace=off'
git prune'
cd "$base_dir"
@ -49,7 +49,7 @@ echo "Goodbye, cruel world" > file3 &&
git add file3 &&
git commit -m "one more" file3 &&
git repack -a -d -l &&
git prune --grace=off'
git prune'
cd "$base_dir"