This repository was archived by the owner on Nov 9, 2017. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +46
-10
lines changed Expand file tree Collapse file tree 4 files changed +46
-10
lines changed Original file line number Diff line number Diff line change 4
4
# Copyright (c) 2010 Junio C Hamano.
5
5
#
6
6
7
+ # The whole contents of this file is run by dot-sourcing it from
8
+ # inside a shell function. It used to be that "return"s we see
9
+ # below were not inside any function, and expected to return
10
+ # to the function that dot-sourced us.
11
+ #
12
+ # However, FreeBSD /bin/sh misbehaves on such a construct and
13
+ # continues to run the statements that follow such a "return".
14
+ # As a work-around, we introduce an extra layer of a function
15
+ # here, and immediately call it after defining it.
16
+ git_rebase__am () {
17
+
7
18
case " $action " in
8
19
continue)
9
20
git am --resolved --resolvemsg=" $resolvemsg " &&
73
84
fi
74
85
75
86
move_to_original_branch
87
+
88
+ }
89
+ # ... and then we call the whole thing.
90
+ git_rebase__am
Original file line number Diff line number Diff line change @@ -810,6 +810,17 @@ add_exec_commands () {
810
810
mv " $1 .new" " $1 "
811
811
}
812
812
813
+ # The whole contents of this file is run by dot-sourcing it from
814
+ # inside a shell function. It used to be that "return"s we see
815
+ # below were not inside any function, and expected to return
816
+ # to the function that dot-sourced us.
817
+ #
818
+ # However, FreeBSD /bin/sh misbehaves on such a construct and
819
+ # continues to run the statements that follow such a "return".
820
+ # As a work-around, we introduce an extra layer of a function
821
+ # here, and immediately call it after defining it.
822
+ git_rebase__interactive () {
823
+
813
824
case " $action " in
814
825
continue)
815
826
# do we have anything to commit?
@@ -1042,3 +1053,7 @@ GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $onto_name"
1042
1053
output git checkout $onto || die_abort " could not detach HEAD"
1043
1054
git update-ref ORIG_HEAD $orig_head
1044
1055
do_rest
1056
+
1057
+ }
1058
+ # ... and then we call the whole thing.
1059
+ git_rebase__interactive
Original file line number Diff line number Diff line change @@ -101,6 +101,17 @@ finish_rb_merge () {
101
101
say All done.
102
102
}
103
103
104
+ # The whole contents of this file is run by dot-sourcing it from
105
+ # inside a shell function. It used to be that "return"s we see
106
+ # below were not inside any function, and expected to return
107
+ # to the function that dot-sourced us.
108
+ #
109
+ # However, FreeBSD /bin/sh misbehaves on such a construct and
110
+ # continues to run the statements that follow such a "return".
111
+ # As a work-around, we introduce an extra layer of a function
112
+ # here, and immediately call it after defining it.
113
+ git_rebase__merge () {
114
+
104
115
case " $action " in
105
116
continue)
106
117
read_state
151
162
done
152
163
153
164
finish_rb_merge
165
+
166
+ }
167
+ # ... and then we call the whole thing.
168
+ git_rebase__merge
Original file line number Diff line number Diff line change @@ -169,22 +169,13 @@ You can run "git stash pop" or "git stash drop" at any time.
169
169
rm -rf " $state_dir "
170
170
}
171
171
172
- run_specific_rebase_internal () {
172
+ run_specific_rebase () {
173
173
if [ " $interactive_rebase " = implied ]; then
174
174
GIT_EDITOR=:
175
175
export GIT_EDITOR
176
176
autosquash=
177
177
fi
178
- # On FreeBSD, the shell's "return" returns from the current
179
- # function, not from the current file inclusion.
180
- # run_specific_rebase_internal has the file inclusion as a
181
- # last statement, so POSIX and FreeBSD's return will do the
182
- # same thing.
183
178
. git-rebase--$type
184
- }
185
-
186
- run_specific_rebase () {
187
- run_specific_rebase_internal
188
179
ret=$?
189
180
if test $ret -eq 0
190
181
then
You can’t perform that action at this time.
0 commit comments