rebase: remember strategy and strategy options

When a rebase is resumed, interactive rebase remembers any merge
strategy passed when the rebase was initated. Make non-interactive
rebase remember any merge strategy as well. Also make non-interactive
rebase remember any merge strategy options.

To be able to resume a rebase that was initiated with an older version
of git (older than this commit), make sure not to expect the saved
option files to exist.

Test case idea taken from Junio's 71fc224 (t3402: test "rebase
-s<strategy> -X<opt>", 2010-11-11).

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 files changed
tree: 89508cb9b1146dc48c91a6a425d4af5b1b2aff0e
  1. block-sha1/
  2. builtin/
  3. compat/
  4. contrib/
  5. Documentation/
  6. git-gui/
  7. git_remote_helpers/
  8. gitk-git/
  9. gitweb/
  10. perl/
  11. ppc/
  12. t/
  13. templates/
  14. vcs-svn/
  15. xdiff/
  16. .gitattributes
  17. .gitignore
  18. .mailmap
  19. abspath.c
  20. aclocal.m4
  21. advice.c
  22. advice.h
  23. alias.c
  24. alloc.c
  25. archive-tar.c
  26. archive-zip.c
  27. archive.c
  28. archive.h
  29. attr.c
  30. attr.h
  31. base85.c
  32. bisect.c
  33. bisect.h
  34. blob.c
  35. blob.h
  36. branch.c
  37. branch.h
  38. builtin.h
  39. bundle.c
  40. bundle.h
  41. cache-tree.c
  42. cache-tree.h
  43. cache.h
  44. check-builtins.sh
  45. check-racy.c
  46. check_bindir
  47. color.c
  48. color.h
  49. combine-diff.c
  50. command-list.txt
  51. commit.c
  52. commit.h
  53. config.c
  54. config.mak.in
  55. configure.ac
  56. connect.c
  57. convert.c
  58. copy.c
  59. COPYING
  60. csum-file.c
  61. csum-file.h
  62. ctype.c
  63. daemon.c
  64. date.c
  65. decorate.c
  66. decorate.h
  67. delta.h
  68. diff-delta.c
  69. diff-lib.c
  70. diff-no-index.c
  71. diff.c
  72. diff.h
  73. diffcore-break.c
  74. diffcore-delta.c
  75. diffcore-order.c
  76. diffcore-pickaxe.c
  77. diffcore-rename.c
  78. diffcore.h
  79. dir.c
  80. dir.h
  81. editor.c
  82. entry.c
  83. environment.c
  84. exec_cmd.c
  85. exec_cmd.h
  86. fast-import.c
  87. fetch-pack.h
  88. fixup-builtins
  89. fsck.c
  90. fsck.h
  91. generate-cmdlist.sh
  92. git-add--interactive.perl
  93. git-am.sh
  94. git-archimport.perl
  95. git-bisect.sh
  96. git-compat-util.h
  97. git-cvsexportcommit.perl
  98. git-cvsimport.perl
  99. git-cvsserver.perl
  100. git-difftool--helper.sh
  101. git-difftool.perl
  102. git-filter-branch.sh
  103. git-instaweb.sh
  104. git-lost-found.sh
  105. git-merge-octopus.sh
  106. git-merge-one-file.sh
  107. git-merge-resolve.sh
  108. git-mergetool--lib.sh
  109. git-mergetool.sh
  110. git-parse-remote.sh
  111. git-pull.sh
  112. git-quiltimport.sh
  113. git-rebase--am.sh
  114. git-rebase--interactive.sh
  115. git-rebase--merge.sh
  116. git-rebase.sh
  117. git-relink.perl
  118. git-remote-testgit.py
  119. git-repack.sh
  120. git-request-pull.sh
  121. git-send-email.perl
  122. git-sh-setup.sh
  123. git-stash.sh
  124. git-submodule.sh
  125. git-svn.perl
  126. GIT-VERSION-GEN
  127. git-web--browse.sh
  128. git.c
  129. git.spec.in
  130. graph.c
  131. graph.h
  132. grep.c
  133. grep.h
  134. hash.c
  135. hash.h
  136. help.c
  137. help.h
  138. hex.c
  139. http-backend.c
  140. http-fetch.c
  141. http-push.c
  142. http-walker.c
  143. http.c
  144. http.h
  145. ident.c
  146. imap-send.c
  147. INSTALL
  148. levenshtein.c
  149. levenshtein.h
  150. list-objects.c
  151. list-objects.h
  152. ll-merge.c
  153. ll-merge.h
  154. lockfile.c
  155. log-tree.c
  156. log-tree.h
  157. mailmap.c
  158. mailmap.h
  159. Makefile
  160. match-trees.c
  161. merge-file.c
  162. merge-recursive.c
  163. merge-recursive.h
  164. name-hash.c
  165. notes-cache.c
  166. notes-cache.h
  167. notes-merge.c
  168. notes-merge.h
  169. notes.c
  170. notes.h
  171. object.c
  172. object.h
  173. pack-check.c
  174. pack-refs.c
  175. pack-refs.h
  176. pack-revindex.c
  177. pack-revindex.h
  178. pack-write.c
  179. pack.h
  180. pager.c
  181. parse-options.c
  182. parse-options.h
  183. patch-delta.c
  184. patch-ids.c
  185. patch-ids.h
  186. path.c
  187. pkt-line.c
  188. pkt-line.h
  189. preload-index.c
  190. pretty.c
  191. progress.c
  192. progress.h
  193. quote.c
  194. quote.h
  195. reachable.c
  196. reachable.h
  197. read-cache.c
  198. README
  199. reflog-walk.c
  200. reflog-walk.h
  201. refs.c
  202. refs.h
  203. remote-curl.c
  204. remote.c
  205. remote.h
  206. replace_object.c
  207. rerere.c
  208. rerere.h
  209. resolve-undo.c
  210. resolve-undo.h
  211. revision.c
  212. revision.h
  213. run-command.c
  214. run-command.h
  215. send-pack.h
  216. server-info.c
  217. setup.c
  218. sha1-lookup.c
  219. sha1-lookup.h
  220. sha1_file.c
  221. sha1_name.c
  222. shallow.c
  223. shell.c
  224. shortlog.h
  225. show-index.c
  226. sideband.c
  227. sideband.h
  228. sigchain.c
  229. sigchain.h
  230. strbuf.c
  231. strbuf.h
  232. string-list.c
  233. string-list.h
  234. submodule.c
  235. submodule.h
  236. symlinks.c
  237. tag.c
  238. tag.h
  239. tar.h
  240. test-chmtime.c
  241. test-ctype.c
  242. test-date.c
  243. test-delta.c
  244. test-dump-cache-tree.c
  245. test-genrandom.c
  246. test-index-version.c
  247. test-line-buffer.c
  248. test-match-trees.c
  249. test-mktemp.c
  250. test-obj-pool.c
  251. test-parse-options.c
  252. test-path-utils.c
  253. test-run-command.c
  254. test-sha1.c
  255. test-sha1.sh
  256. test-sigchain.c
  257. test-string-pool.c
  258. test-subprocess.c
  259. test-svn-fe.c
  260. test-treap.c
  261. thread-utils.c
  262. thread-utils.h
  263. trace.c
  264. transport-helper.c
  265. transport.c
  266. transport.h
  267. tree-diff.c
  268. tree-walk.c
  269. tree-walk.h
  270. tree.c
  271. tree.h
  272. unimplemented.sh
  273. unpack-trees.c
  274. unpack-trees.h
  275. upload-pack.c
  276. url.c
  277. url.h
  278. usage.c
  279. userdiff.c
  280. userdiff.h
  281. utf8.c
  282. utf8.h
  283. walker.c
  284. walker.h
  285. wrap-for-bin.sh
  286. wrapper.c
  287. write_or_die.c
  288. ws.c
  289. wt-status.c
  290. wt-status.h
  291. xdiff-interface.c
  292. xdiff-interface.h
  293. zlib.c