diff options
author | Thomas Rast <trast@student.ethz.ch> | 2010-10-19 11:50:43 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-10-19 09:23:24 -0700 |
commit | e32dfec79f99738df3c2ffca8a9b2257c9b681fb (patch) | |
tree | 7beafa1a16c6a8daee8948d64a95b4c25a88321e /git-repack.sh | |
parent | 87b50542a08ac6caa083ddc376e674424e37940a (diff) | |
download | git-e32dfec79f99738df3c2ffca8a9b2257c9b681fb.tar.gz |
repack: place temporary packs under .git/objects/pack/
git-pack-objects is already careful to start out its temporary packs
under .git/objects/pack/ (cf. 8b4eb6b, Do not perform cross-directory
renames when creating packs, 2008-09-22), but git-repack did not
respond in kind so the effort was lost when the filesystem boundary is
exactly at that directory.
Let git-repack pass a path under .git/objects/pack/ as the base for
its temporary packs.
This means we might need the $PACKDIR sooner (before the pack-objects
invocation), so move the mkdir up just to be safe.
Also note that the only use of *.pack is in the find invocation way
before the pack-objects call, so the temporary packs will not suddenly
show up in any wildcards because of the directory change.
Reported-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-repack.sh')
-rwxr-xr-x | git-repack.sh | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/git-repack.sh b/git-repack.sh index 1eb3bca352..d21b274de9 100755 --- a/git-repack.sh +++ b/git-repack.sh @@ -50,7 +50,7 @@ true) esac PACKDIR="$GIT_OBJECT_DIRECTORY/pack" -PACKTMP="$GIT_OBJECT_DIRECTORY/.tmp-$$-pack" +PACKTMP="$PACKDIR/.tmp-$$-pack" rm -f "$PACKTMP"-* trap 'rm -f "$PACKTMP"-*' 0 1 2 3 15 @@ -80,6 +80,8 @@ case ",$all_into_one," in ;; esac +mkdir -p "$PACKDIR" || exit + args="$args $local ${GIT_QUIET:+-q} $no_reuse$extra" names=$(git pack-objects --keep-true-parents --honor-pack-keep --non-empty --all --reflog $args </dev/null "$PACKTMP") || exit 1 @@ -88,7 +90,6 @@ if [ -z "$names" ]; then fi # Ok we have prepared all new packfiles. -mkdir -p "$PACKDIR" || exit # First see if there are packs of the same name and if so # if we can move them out of the way (this can happen if we |