Browse Source

git-fetch: remove .keep file at the end.

Removal of them is needed regardless of errors.  The original
code had the removal outside of the process which sets the flag
to tell the later step what to remove, but it runs as a
downstream of a pipeline and its effect was lost.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 18 years ago
parent
commit
ac9c1108d8
  1. 23
      git-fetch.sh

23
git-fetch.sh

@ -382,13 +382,22 @@ fetch_main () { @@ -382,13 +382,22 @@ fetch_main () {
;; # we are already done.
*)
( : subshell because we muck with IFS
pack_lockfile=
IFS=" $LF"
(
git-fetch-pack --thin $exec $keep $shallow_depth "$remote" $rref || echo failed "$remote"
git-fetch-pack --thin $exec $keep $shallow_depth "$remote" $rref ||
echo failed "$remote"
) |
while read sha1 remote_name
do
(
trap '
if test -n "$keepfile" && test -f "$keepfile"
then
rm -f "$keepfile"
fi
' 0

keepfile=
while read sha1 remote_name
do
case "$sha1" in
failed)
echo >&2 "Fetch failure: $remote"
@ -397,7 +406,7 @@ fetch_main () { @@ -397,7 +406,7 @@ fetch_main () {
pack)
continue ;;
keep)
pack_lockfile="$GIT_OBJECT_DIRECTORY/pack/pack-$remote_name.keep"
keepfile="$GIT_OBJECT_DIRECTORY/pack/pack-$remote_name.keep"
continue ;;
esac
found=
@ -429,8 +438,8 @@ fetch_main () { @@ -429,8 +438,8 @@ fetch_main () {
append_fetch_head "$sha1" "$remote" \
"$remote_name" "$remote_nick" "$local_name" \
"$not_for_merge" || exit
done &&
if [ "$pack_lockfile" ]; then rm -f "$pack_lockfile"; fi
done
)
) || exit ;;
esac


Loading…
Cancel
Save