projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git.sh: quote all paths
[git.git]
/
git-pull.sh
diff --git
a/git-pull.sh
b/git-pull.sh
index
71327a2
..
d476518
100755
(executable)
--- a/
git-pull.sh
+++ b/
git-pull.sh
@@
-32,16
+32,17
@@
do
strategy_args="${strategy_args}-s $strategy "
;;
-*)
strategy_args="${strategy_args}-s $strategy "
;;
-*)
- usage
+ # Pass thru anything that is meant for fetch.
+ break
;;
esac
shift
done
;;
esac
shift
done
-orig_head=$(
cat "$GIT_DIR/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 "$@" || exit 1
-curr_head=$(
cat "$GIT_DIR/HEAD"
)
+curr_head=$(
git-rev-parse --verify HEAD
)
if test "$curr_head" != "$orig_head"
then
# The fetch involved updating the current branch.
if test "$curr_head" != "$orig_head"
then
# The fetch involved updating the current branch.
@@
-56,17
+57,28
@@
then
die "You need to first update your working tree."
fi
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
-)
+merge_head=$(sed -e '/ not-for-merge /d' \
+ -e 's/ .*//' "$GIT_DIR"/FETCH_HEAD | \
+ tr '\012' ' ')
case "$merge_head" in
'')
echo >&2 "No changes."
exit 0
;;
case "$merge_head" in
'')
echo >&2 "No changes."
exit 0
;;
+?*' '?*)
+ strategy_default_args='-s octopus'
+ ;;
+*)
+ strategy_default_args='-s resolve'
+ ;;
+esac
+
+case "$strategy_args" in
+'')
+ strategy_args=$strategy_default_args
+ ;;
esac
esac
-git-merge $no_summary $strategy_args "Merge $merge_name" HEAD $merge_head
+merge_name=$(git-fmt-merge-msg <"$GIT_DIR/FETCH_HEAD")
+git-merge $no_summary $strategy_args "$merge_name" HEAD $merge_head