Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 47 lines (38 sloc) 1.219 kb
#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
# Fetch one or more remote refs and merge it/them into the current HEAD.
. git-sh-setup || die "Not a git archive"
orig_head=$(cat "$GIT_DIR/HEAD") || die "Pulling into a black hole?"
git-fetch --update-head-ok "$@" || exit 1
curr_head=$(cat "$GIT_DIR/HEAD")
if test "$curr_head" != "$orig_head"
then
# The fetch involved updating the current branch.
# The working tree and the index file is still based on the
# $orig_head commit, but we are merging into $curr_head.
# First update the working tree to match $curr_head.
echo >&2 "Warning: fetch updated the current branch head."
echo >&2 "Warning: fast forwarding your working tree."
git-read-tree -u -m "$orig_head" "$curr_head" ||
die "You need to first update your working tree."
fi
merge_head=$(sed -e 's/ .*//' "$GIT_DIR"/FETCH_HEAD | tr '\012' ' ')
merge_name=$(
perl -e 'print join("; ", map { chomp; s/^[0-9a-f]* //; $_ } <>)' \
"$GIT_DIR"/FETCH_HEAD
)
case "$merge_head" in
'')
echo >&2 "No changes."
exit 0
;;
*' '?*)
echo >&2 "Pulling more than one heads; making an Octopus."
exec git-octopus
;;
esac
git-resolve \
"$(cat "$GIT_DIR"/HEAD)" \
$merge_head "Merge $merge_name"
Jump to Line
Something went wrong with that request. Please try again.