From: Junio C Hamano Date: Thu, 18 Jul 2013 18:00:10 GMT Subject: Re: [PATCH] pull: require choice between rebase/merge on non-fast-forward pull Message-ID: <7vmwpj3g0l.fsf@alter.siamese.dyndns.org> In-Reply-To: <871u6v93a8.fsf@igel.home> Andreas Schwab writes: > John Keeping writes: > >> On Thu, Jun 27, 2013 at 12:48:52PM -0700, Junio C Hamano wrote: >>> diff --git a/git-pull.sh b/git-pull.sh >>> index 638aabb..4a6a863 100755 >>> --- a/git-pull.sh >>> +++ b/git-pull.sh >>> @@ -264,6 +274,30 @@ case "$merge_head" in >>> die "$(gettext "Cannot rebase onto multiple branches")" >>> fi >>> ;; >>> +*) >>> + # integrating with a single other history >>> + merge_head=${merge_head% } >>> + if test -z "$rebase$no_ff$ff_only${squash#--no-squash}" && >>> + test -n "$orig_head" && >>> + ! $(git merge-base --is-ancestor "$orig_head" "$merge_head") >> >> I think this needs to be: >> >> ! $(git merge-base --is-ancestor "$orig_head" "$merge_head" || >> git merge-base --is-ancestor "$merge_head" "$orig_head") > > Neither makes sense. You want to check the exit status of git > merge-base --is-ancestor, not execute its (empty) output as a command. Gaah. You are right. Thanks for spotting.