diff options
author | Junio C Hamano <junkio@cox.net> | 2005-09-17 23:35:49 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-09-17 23:35:49 -0700 |
commit | 490e23d22afad5734daa447f1a991eeff3a669bb (patch) | |
tree | ebbb45fcf93d3080f6abafb7868eb189aa14849c /git-repack.sh | |
parent | 434d036fe4b8f1b7571eb912957590a483944b26 (diff) | |
download | git-490e23d22afad5734daa447f1a991eeff3a669bb.tar.gz |
Archive-destroying "git repack -a -d" bug.
Using "git repack -a -d" can destroy your git archive if you use it
twice in succession, because the new pack can be called the same as
the old pack. Found by Linus.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-repack.sh')
-rwxr-xr-x | git-repack.sh | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/git-repack.sh b/git-repack.sh index 064c85cbb6..b395d0ef34 100755 --- a/git-repack.sh +++ b/git-repack.sh @@ -58,7 +58,15 @@ then # all-into-one is used. if test "$all_into_one" != '' && test "$existing" != '' then - ( cd "$PACKDIR" && rm -f $existing ) + ( cd "$PACKDIR" && + for e in $existing + do + case "$e" in + ./pack-$name.pack | ./pack-$name.idx) ;; + *) rm -f $e ;; + esac + done + ) fi fi |