Browse Source

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.
maint
Junio C Hamano 18 years ago
parent
commit
026aa93818
  1. 9
      Documentation/git-prune.txt
  2. 31
      builtin-prune.c
  3. 6
      t/t1410-reflog.sh
  4. 4
      t/t5400-send-pack.sh
  5. 4
      t/t5700-clone-reference.sh
  6. 6
      t/t5710-info-alternate.sh

9
Documentation/git-prune.txt

@ -8,7 +8,7 @@ git-prune - Prunes all unreachable objects from the object database @@ -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 @@ -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 @@ -52,7 +46,6 @@ borrows from your repository via its
------------
$ git prune $(cd ../another && $(git-rev-parse --all))
------------
////////////////////////////////////////////

Author
------

31
builtin-prune.c

@ -5,9 +5,8 @@ @@ -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) @@ -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) @@ -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) @@ -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) @@ -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);
}


6
t/t1410-reflog.sh

@ -96,7 +96,7 @@ test_expect_success setup ' @@ -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 ' @@ -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' ' @@ -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 &&

4
t/t5400-send-pack.sh

@ -55,13 +55,13 @@ test_expect_success setup ' @@ -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 ..
'


4
t/t5700-clone-reference.sh

@ -22,7 +22,7 @@ echo second > file2 && @@ -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 && @@ -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"


6
t/t5710-info-alternate.sh

@ -29,7 +29,7 @@ echo "Hello World" > file1 && @@ -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 && @@ -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 && @@ -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"


Loading…
Cancel
Save