diff options
| author | Junio C Hamano <junkio@cox.net> | 2005-12-08 23:18:41 -0800 |
|---|---|---|
| committer | Junio C Hamano <junkio@cox.net> | 2005-12-08 23:18:41 -0800 |
| commit | 2b86976bfd6e42609692d57fffaef72bd985c23a (patch) | |
| tree | c0839ba1ec37f195a19a5cca13cf6fe499088494 /git-prune.sh | |
| parent | qsort(): ptrdiff_t may be larger than int (diff) | |
| download | git-2b86976bfd6e42609692d57fffaef72bd985c23a.tar.gz git-2b86976bfd6e42609692d57fffaef72bd985c23a.zip | |
git-prune: never lose objects reachable from our refs.
Explicit <head> arguments to git-prune replaces, instead of
extends, the list of heads used for reachability analysis by
fsck-objects. By giving a subset of heads by mistake, objects
reachable only from other heads can be removed, resulting in a
corrupted repository.
This commit stops replacing the list of heads, and makes the
command line arguments to add to them instead for safety.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-prune.sh')
| -rwxr-xr-x | git-prune.sh | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/git-prune.sh b/git-prune.sh index 1fd8c731cd..7e7f0ad56d 100755 --- a/git-prune.sh +++ b/git-prune.sh @@ -16,7 +16,11 @@ do done sync -git-fsck-objects --full --cache --unreachable "$@" | +case "$#" in +0) git-fsck-objects --full --cache --unreachable ;; +*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) "$@" ;; +esac | + sed -ne '/unreachable /{ s/unreachable [^ ][^ ]* // s|\(..\)|\1/|p |
