Merge branch 'ew/prune-with-missing-objects-pack'
"git prune" may try to iterate over .git/objects/pack for trash files to remove in it, and loudly fail when the directory is missing, which is not necessary. The command has been taught to ignore such a failure. * ew/prune-with-missing-objects-pack: prune: quiet ENOENT on missing directories
This commit is contained in:
commit
7d7ed48dd5
@ -127,7 +127,9 @@ static void remove_temporary_files(const char *path)
|
|||||||
|
|
||||||
dir = opendir(path);
|
dir = opendir(path);
|
||||||
if (!dir) {
|
if (!dir) {
|
||||||
fprintf(stderr, "Unable to open directory %s\n", path);
|
if (errno != ENOENT)
|
||||||
|
fprintf(stderr, "Unable to open directory %s: %s\n",
|
||||||
|
path, strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while ((de = readdir(dir)) != NULL)
|
while ((de = readdir(dir)) != NULL)
|
||||||
|
@ -29,6 +29,14 @@ test_expect_success setup '
|
|||||||
git gc
|
git gc
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'bare repo prune is quiet without $GIT_DIR/objects/pack' '
|
||||||
|
git clone -q --shared --template= --bare . bare.git &&
|
||||||
|
rmdir bare.git/objects/pack &&
|
||||||
|
git --git-dir=bare.git prune --no-progress 2>prune.err &&
|
||||||
|
test_must_be_empty prune.err &&
|
||||||
|
rm -r bare.git prune.err
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'prune stale packs' '
|
test_expect_success 'prune stale packs' '
|
||||||
orig_pack=$(echo .git/objects/pack/*.pack) &&
|
orig_pack=$(echo .git/objects/pack/*.pack) &&
|
||||||
>.git/objects/tmp_1.pack &&
|
>.git/objects/tmp_1.pack &&
|
||||||
|
Loading…
Reference in New Issue
Block a user