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 | 2dee581667d62d113605e97de0beda6a9dbca153 (diff) | |
download | git-2b86976bfd6e42609692d57fffaef72bd985c23a.tar.gz |
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 |