summaryrefslogtreecommitdiff
path: root/git-pull.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-09-17 06:38:59 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-09-21 01:16:27 (GMT)
commitf887564ab72e107bcdee3ba83c91e2bb4ae13ca7 (patch)
treeeae844ac1f369bf699f35150e6f3808a4180e55e /git-pull.sh
parent27cfe2e2dcbfc4f6c6288ed4eafd077e232c2ab1 (diff)
downloadgit-f887564ab72e107bcdee3ba83c91e2bb4ae13ca7.zip
git-f887564ab72e107bcdee3ba83c91e2bb4ae13ca7.tar.gz
git-f887564ab72e107bcdee3ba83c91e2bb4ae13ca7.tar.bz2
Use git-merge instead of git-resolve in git-pull.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-pull.sh')
-rwxr-xr-xgit-pull.sh40
1 files changed, 33 insertions, 7 deletions
diff --git a/git-pull.sh b/git-pull.sh
index 8cf39e7..71327a2 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -6,6 +6,38 @@
. git-sh-setup || die "Not a git archive"
+usage () {
+ die "git pull [-n] [-s strategy]... <repo> <head>..."
+}
+
+strategy_args= no_summary=
+while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac
+do
+ case "$1" in
+ -n|--n|--no|--no-|--no-s|--no-su|--no-sum|--no-summ|\
+ --no-summa|--no-summar|--no-summary)
+ no_summary=-n ;;
+ -s=*|--s=*|--st=*|--str=*|--stra=*|--strat=*|--strate=*|\
+ --strateg=*|--strategy=*|\
+ -s|--s|--st|--str|--stra|--strat|--strate|--strateg|--strategy)
+ case "$#,$1" in
+ *,*=*)
+ strategy=`expr "$1" : '-[^=]*=\(.*\)'` ;;
+ 1,*)
+ usage ;;
+ *)
+ strategy="$2"
+ shift ;;
+ esac
+ strategy_args="${strategy_args}-s $strategy "
+ ;;
+ -*)
+ usage
+ ;;
+ esac
+ shift
+done
+
orig_head=$(cat "$GIT_DIR/HEAD") || die "Pulling into a black hole?"
git-fetch --update-head-ok "$@" || exit 1
@@ -35,12 +67,6 @@ 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"
+git-merge $no_summary $strategy_args "Merge $merge_name" HEAD $merge_head