git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Bug in git rebase --continue in v1.8.4

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Sep 4, 2013, 11:56 UTC
Message-ID
<vpq61ug6brx.fsf@anie.imag.fr>
In-Reply-To
<5226FA92.5060709@FreeBSD.org>
Andriy Gapon <avg@FreeBSD.org> 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/
Previous: Andriy Gapon
Message 6 of 6 in “Bug in git rebase --continue in v1.8.4”
  1. Christoph MallonAug 31, 2013
  2. Andriy GaponSep 4, 2013
  3. Matthieu MoySep 4, 2013
  4. Andriy GaponSep 4, 2013
  5. Andriy GaponSep 4, 2013
  6. Matthieu MoySep 4, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.