Browse Source

Log ref changes made by git-fetch and git-pull.

When git-fetch updates a reference record in the associated reflog
what type of update took place and who caused it (git-fetch or
git-pull, by invoking git-fetch).

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Shawn Pearce 19 years ago committed by Junio C Hamano
parent
commit
55b7835e1b
  1. 20
      git-fetch.sh
  2. 2
      git-pull.sh

20
git-fetch.sh

@ -11,6 +11,7 @@ LF='
' '
IFS="$LF" IFS="$LF"


rloga=fetch
no_tags= no_tags=
tags= tags=
append= append=
@ -51,6 +52,9 @@ do
-k|--k|--ke|--kee|--keep) -k|--k|--ke|--kee|--keep)
keep=--keep keep=--keep
;; ;;
--reflog-action=*)
rloga=`expr "z$1" : 'z-[^=]*=\(.*\)'`
;;
-*) -*)
usage usage
;; ;;
@ -75,6 +79,9 @@ refs=
rref= rref=
rsync_slurped_objects= rsync_slurped_objects=


rloga="$rloga $remote_nick"
test "$remote_nick" == "$remote" || rloga="$rloga $remote"

if test "" = "$append" if test "" = "$append"
then then
: >"$GIT_DIR/FETCH_HEAD" : >"$GIT_DIR/FETCH_HEAD"
@ -149,11 +156,12 @@ fast_forward_local () {
[ "$verbose" ] && echo >&2 "* $1: same as $3" [ "$verbose" ] && echo >&2 "* $1: same as $3"
else else
echo >&2 "* $1: updating with $3" echo >&2 "* $1: updating with $3"
git-update-ref -m "$rloga: updating tag" "$1" "$2"
fi fi
else else
echo >&2 "* $1: storing $3" echo >&2 "* $1: storing $3"
git-update-ref -m "$rloga: storing tag" "$1" "$2"
fi fi
git-update-ref "$1" "$2"
;; ;;


refs/heads/* | refs/remotes/*) refs/heads/* | refs/remotes/*)
@ -174,7 +182,7 @@ fast_forward_local () {
*,$local) *,$local)
echo >&2 "* $1: fast forward to $3" echo >&2 "* $1: fast forward to $3"
echo >&2 " from $local to $2" echo >&2 " from $local to $2"
git-update-ref "$1" "$2" "$local" git-update-ref -m "$rloga: fast-forward" "$1" "$2" "$local"
;; ;;
*) *)
false false
@ -184,7 +192,7 @@ fast_forward_local () {
case ",$force,$single_force," in case ",$force,$single_force," in
*,t,*) *,t,*)
echo >&2 " forcing update." echo >&2 " forcing update."
git-update-ref "$1" "$2" "$local" git-update-ref -m "$rloga: forced-update" "$1" "$2" "$local"
;; ;;
*) *)
echo >&2 " not updating." echo >&2 " not updating."
@ -194,7 +202,7 @@ fast_forward_local () {
} }
else else
echo >&2 "* $1: storing $3" echo >&2 "* $1: storing $3"
git-update-ref "$1" "$2" git-update-ref -m "$rloga: storing head" "$1" "$2"
fi fi
;; ;;
esac esac
@ -422,7 +430,9 @@ case ",$update_head_ok,$orig_head," in
curr_head=$(git-rev-parse --verify HEAD 2>/dev/null) curr_head=$(git-rev-parse --verify HEAD 2>/dev/null)
if test "$curr_head" != "$orig_head" if test "$curr_head" != "$orig_head"
then then
git-update-ref HEAD "$orig_head" git-update-ref \
-m "$rloga: Undoing incorrectly fetched HEAD." \
HEAD "$orig_head"
die "Cannot fetch into the current branch." die "Cannot fetch into the current branch."
fi fi
;; ;;

2
git-pull.sh

@ -45,7 +45,7 @@ do
done done


orig_head=$(git-rev-parse --verify HEAD) || die "Pulling into a black hole?" orig_head=$(git-rev-parse --verify HEAD) || die "Pulling into a black hole?"
git-fetch --update-head-ok "$@" || exit 1 git-fetch --update-head-ok --reflog-action=pull "$@" || exit 1


curr_head=$(git-rev-parse --verify HEAD) curr_head=$(git-rev-parse --verify HEAD)
if test "$curr_head" != "$orig_head" if test "$curr_head" != "$orig_head"

Loading…
Cancel
Save