From: Junio C Hamano Date: Mon, 21 Apr 2014 17:42:45 +0000 (-0700) Subject: Merge branch 'km/avoid-non-function-return-in-rebase' X-Git-Tag: v2.0.0-rc1~7 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/0b17b4331087224883878e49342037bf69717b62 Merge branch 'km/avoid-non-function-return-in-rebase' Work around /bin/sh that does not like "return" at the top-level of a file that is dot-sourced from inside a function definition. * km/avoid-non-function-return-in-rebase: Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD" rebase: avoid non-function use of "return" on FreeBSD --- 0b17b4331087224883878e49342037bf69717b62 diff --cc git-rebase--am.sh index df46f4ca96,1cdc13944c..ca20e1e66f --- a/git-rebase--am.sh +++ b/git-rebase--am.sh @@@ -4,10 -4,20 +4,21 @@@ # Copyright (c) 2010 Junio C Hamano. # + # The whole contents of this file is run by dot-sourcing it from + # inside a shell function. It used to be that "return"s we see + # below were not inside any function, and expected to return + # to the function that dot-sourced us. + # + # However, FreeBSD /bin/sh misbehaves on such a construct and + # continues to run the statements that follow such a "return". + # As a work-around, we introduce an extra layer of a function + # here, and immediately call it after defining it. + git_rebase__am () { + case "$action" in continue) - git am --resolved --resolvemsg="$resolvemsg" && + git am --resolved --resolvemsg="$resolvemsg" \ + ${gpg_sign_opt:+"$gpg_sign_opt"} && move_to_original_branch return ;;