Teach rebase an interactive mode

Don't you just hate the fact sometimes, that git-rebase just applies
the patches, without any possibility to edit them, or rearrange them?
With "--interactive", git-rebase now lets you edit the list of patches,
so that you can reorder, edit and delete patches.

Such a list will typically look like this:

	pick deadbee The oneline of this commit
	pick fa1afe1 The oneline of the next commit
	...

By replacing the command "pick" with the command "edit", you can amend
that patch and/or its commit message, and by replacing it with "squash"
you can tell rebase to fold that patch into the patch before that.

It is derived from the script sent to the list in
<Pine.LNX.4.63.0702252156190.22628@wbgn013.biozentrum.uni-wuerzburg.de>

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 files changed
tree: b48022f5003b0b8116348ef728beb2d42211ec58
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. git-gui/
  6. gitweb/
  7. mozilla-sha1/
  8. perl/
  9. ppc/
  10. t/
  11. templates/
  12. xdiff/
  13. .gitignore
  14. .mailmap
  15. alloc.c
  16. archive-tar.c
  17. archive-zip.c
  18. archive.h
  19. attr.c
  20. attr.h
  21. base85.c
  22. blob.c
  23. blob.h
  24. builtin-add.c
  25. builtin-annotate.c
  26. builtin-apply.c
  27. builtin-archive.c
  28. builtin-blame.c
  29. builtin-branch.c
  30. builtin-bundle.c
  31. builtin-cat-file.c
  32. builtin-check-attr.c
  33. builtin-check-ref-format.c
  34. builtin-checkout-index.c
  35. builtin-commit-tree.c
  36. builtin-config.c
  37. builtin-count-objects.c
  38. builtin-describe.c
  39. builtin-diff-files.c
  40. builtin-diff-index.c
  41. builtin-diff-tree.c
  42. builtin-diff.c
  43. builtin-fetch--tool.c
  44. builtin-fmt-merge-msg.c
  45. builtin-for-each-ref.c
  46. builtin-fsck.c
  47. builtin-gc.c
  48. builtin-grep.c
  49. builtin-init-db.c
  50. builtin-log.c
  51. builtin-ls-files.c
  52. builtin-ls-tree.c
  53. builtin-mailinfo.c
  54. builtin-mailsplit.c
  55. builtin-merge-base.c
  56. builtin-merge-file.c
  57. builtin-mv.c
  58. builtin-name-rev.c
  59. builtin-pack-objects.c
  60. builtin-pack-refs.c
  61. builtin-prune-packed.c
  62. builtin-prune.c
  63. builtin-push.c
  64. builtin-read-tree.c
  65. builtin-reflog.c
  66. builtin-rerere.c
  67. builtin-rev-list.c
  68. builtin-rev-parse.c
  69. builtin-revert.c
  70. builtin-rm.c
  71. builtin-runstatus.c
  72. builtin-shortlog.c
  73. builtin-show-branch.c
  74. builtin-show-ref.c
  75. builtin-stripspace.c
  76. builtin-symbolic-ref.c
  77. builtin-tar-tree.c
  78. builtin-unpack-objects.c
  79. builtin-update-index.c
  80. builtin-update-ref.c
  81. builtin-upload-archive.c
  82. builtin-verify-pack.c
  83. builtin-write-tree.c
  84. builtin.h
  85. cache-tree.c
  86. cache-tree.h
  87. cache.h
  88. check-builtins.sh
  89. check-racy.c
  90. color.c
  91. color.h
  92. combine-diff.c
  93. commit.c
  94. commit.h
  95. config.c
  96. config.mak.in
  97. configure.ac
  98. connect.c
  99. convert-objects.c
  100. convert.c
  101. copy.c
  102. COPYING
  103. csum-file.c
  104. csum-file.h
  105. ctype.c
  106. daemon.c
  107. date.c
  108. decorate.c
  109. decorate.h
  110. delta.h
  111. diff-delta.c
  112. diff-lib.c
  113. diff.c
  114. diff.h
  115. diffcore-break.c
  116. diffcore-delta.c
  117. diffcore-order.c
  118. diffcore-pickaxe.c
  119. diffcore-rename.c
  120. diffcore.h
  121. dir.c
  122. dir.h
  123. dump-cache-tree.c
  124. entry.c
  125. environment.c
  126. exec_cmd.c
  127. exec_cmd.h
  128. fast-import.c
  129. fetch-pack.c
  130. fetch.c
  131. fetch.h
  132. generate-cmdlist.sh
  133. git-add--interactive.perl
  134. git-am.sh
  135. git-archimport.perl
  136. git-bisect.sh
  137. git-checkout.sh
  138. git-clean.sh
  139. git-clone.sh
  140. git-commit.sh
  141. git-compat-util.h
  142. git-cvsexportcommit.perl
  143. git-cvsimport.perl
  144. git-cvsserver.perl
  145. git-fetch.sh
  146. git-filter-branch.sh
  147. git-instaweb.sh
  148. git-lost-found.sh
  149. git-ls-remote.sh
  150. git-merge-octopus.sh
  151. git-merge-one-file.sh
  152. git-merge-ours.sh
  153. git-merge-resolve.sh
  154. git-merge-stupid.sh
  155. git-merge.sh
  156. git-mergetool.sh
  157. git-p4import.py
  158. git-parse-remote.sh
  159. git-pull.sh
  160. git-quiltimport.sh
  161. git-rebase--interactive.sh
  162. git-rebase.sh
  163. git-relink.perl
  164. git-remote.perl
  165. git-repack.sh
  166. git-request-pull.sh
  167. git-reset.sh
  168. git-send-email.perl
  169. git-sh-setup.sh
  170. git-submodule.sh
  171. git-svn.perl
  172. git-svnimport.perl
  173. git-tag.sh
  174. git-verify-tag.sh
  175. GIT-VERSION-GEN
  176. git.c
  177. git.spec.in
  178. gitk
  179. grep.c
  180. grep.h
  181. hash-object.c
  182. help.c
  183. http-fetch.c
  184. http-push.c
  185. http.c
  186. http.h
  187. ident.c
  188. imap-send.c
  189. index-pack.c
  190. INSTALL
  191. interpolate.c
  192. interpolate.h
  193. list-objects.c
  194. list-objects.h
  195. local-fetch.c
  196. lockfile.c
  197. log-tree.c
  198. log-tree.h
  199. mailmap.c
  200. mailmap.h
  201. Makefile
  202. match-trees.c
  203. merge-file.c
  204. merge-index.c
  205. merge-recursive.c
  206. merge-tree.c
  207. mktag.c
  208. mktree.c
  209. object-refs.c
  210. object.c
  211. object.h
  212. pack-check.c
  213. pack-redundant.c
  214. pack-write.c
  215. pack.h
  216. pager.c
  217. patch-delta.c
  218. patch-id.c
  219. patch-ids.c
  220. patch-ids.h
  221. path-list.c
  222. path-list.h
  223. path.c
  224. peek-remote.c
  225. pkt-line.c
  226. pkt-line.h
  227. progress.c
  228. progress.h
  229. quote.c
  230. quote.h
  231. reachable.c
  232. reachable.h
  233. read-cache.c
  234. README
  235. receive-pack.c
  236. reflog-walk.c
  237. reflog-walk.h
  238. refs.c
  239. refs.h
  240. remote.c
  241. remote.h
  242. revision.c
  243. revision.h
  244. rsh.c
  245. rsh.h
  246. run-command.c
  247. run-command.h
  248. send-pack.c
  249. server-info.c
  250. setup.c
  251. sha1_file.c
  252. sha1_name.c
  253. shallow.c
  254. shell.c
  255. show-index.c
  256. sideband.c
  257. sideband.h
  258. ssh-fetch.c
  259. ssh-pull.c
  260. ssh-push.c
  261. ssh-upload.c
  262. strbuf.c
  263. strbuf.h
  264. symlinks.c
  265. tag.c
  266. tag.h
  267. tar.h
  268. test-chmtime.c
  269. test-date.c
  270. test-delta.c
  271. test-genrandom.c
  272. test-match-trees.c
  273. test-sha1.c
  274. test-sha1.sh
  275. trace.c
  276. tree-diff.c
  277. tree-walk.c
  278. tree-walk.h
  279. tree.c
  280. tree.h
  281. unpack-file.c
  282. unpack-trees.c
  283. unpack-trees.h
  284. update-server-info.c
  285. upload-pack.c
  286. usage.c
  287. utf8.c
  288. utf8.h
  289. var.c
  290. write_or_die.c
  291. wt-status.c
  292. wt-status.h
  293. xdiff-interface.c
  294. xdiff-interface.h