Andriy Gapon <avg@xxxxxxxxxxx> writes: > This looks like bug in FreeBSD shell indeed. Yes: the testsuite would have caught it otherwise. > If a script is sourced within a function scope, then 'return' in the script > causes the function to return. But it should cause the sourced script to return. OK, so this is FreeBSD's fault. But that should not prevent us from fixing Git to make it work with FreeBSD. Does the patch below fix the testsuite for you? --- a/git-rebase.sh +++ b/git-rebase.sh @@ -167,13 +167,22 @@ You can run "git stash pop" or "git stash drop" at any time. rm -rf "$state_dir" } -run_specific_rebase () { +run_specific_rebase_internal () { if [ "$interactive_rebase" = implied ]; then GIT_EDITOR=: export GIT_EDITOR autosquash= fi + # On FreeBSD, the shell's "return" returns from the current + # function, not from the current file inclusion. + # run_specific_rebase_internal has the file inclusion as a + # last statement, so POSIX and FreeBSD's return will do the + # same thing. . git-rebase--$type +} + +run_specific_rebase () { + run_specific_rebase_internal ret=$? if test $ret -eq 0 then -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html