From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Ramkumar Ramachandra <artagnon@gmail.com>,
Jonathan Nieder <jrnieder@gmail.com>,
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH v4 00/45] Massive improvents to rebase and cherry-pick
Date: Sun, 9 Jun 2013 11:40:12 -0500 [thread overview]
Message-ID: <1370796057-25312-1-git-send-email-felipe.contreras@gmail.com> (raw)
Hi,
These are improvements to 'git rebase' by using a much improved 'git
cherry-pick'. I already sent some of these, but they have been revamped.
These changes require reorganization of the code in order to have a
builtin/lib.a library.
A new builtin/rewrite.c helper is added, and builtin/commit updated to use
that.
A new git-rebase--cherypick mode is added, and it replaces git-rebase--am and
git-rebase--merge.
I also added the new rebase tests by Martin von Zweigbergk to make sure
everything works, and in fact, it works better than before, since now all the
rebase modes are consistent with each other.
I don't have any hopes of these getting merged, because people have no interest
in fixing the ./*.o ./builin/*.o divide problem, only interested in arguing
that libgit.a is not a real library, and it should never be. So my obviously
cleanup is rejected.
Felipe Contreras (38):
build: generate and clean test scripts
build: do not install git-remote-testgit
build: trivial cleanup
build: add builtin lib
log-tree: remove dependency from sequencer
Move sequencer to builtin
unpack-trees: plug a memory leak
read-cache: plug a few leaks
sequencer: remove useless indentation
sequencer: trivial fix
cherry-pick: don't barf when there's nothing to do
cherry-pick: add --skip-empty option
revert/cherry-pick: add --quiet option
revert/cherry-pick: add --skip option
builtin: add rewrite helper
cherry-pick: store rewritten commits
cherry-pick: don't store skipped commit
builtin: move run_rewrite_hook() to rewrite.c
builtin: add copy_rewrite_notes()
cherry-pick: copy notes and run hooks
cherry-pick: add --action-name option
cherry-pick: remember rerere-autoupdate
rebase: split the cherry-pick stuff
rebase: cherry-pick: fix mode storage
rebase: cherry-pick: fix sequence continuation
rebase: cherry-pick: fix abort of cherry mode
rebase: cherry-pick: fix command invocations
rebase: cherry-pick: fix status messages
rebase: cherry-pick: automatically commit stage
rebase: cherry-pick: set correct action-name
rebase: trivial cleanup
rebase: use 'cherrypick' mode instead of 'am'
rebase: cherry-pick: fix for shell prompt
rebase: cherry-pick: add merge options
rebase: remove merge mode
rebase: cherry-pick: add copyright
tests: fix autostash
tests: update topology tests
Martin von Zweigbergk (7):
add simple tests of consistency across rebase types
add tests for rebasing with patch-equivalence present
add tests for rebasing of empty commits
add tests for rebasing root
add tests for rebasing merged history
t3406: modernize style
tests: move test for rebase messages from t3400 to t3406
.gitignore | 1 +
Documentation/git-cherry-pick.txt | 10 +-
Documentation/git-revert.txt | 7 +-
Documentation/sequencer.txt | 3 +
Makefile | 31 +--
builtin/commit.c | 46 +----
builtin/revert.c | 17 ++
builtin/rewrite.c | 124 ++++++++++++
builtin/rewrite.h | 20 ++
sequencer.c => builtin/sequencer.c | 263 ++++++++++---------------
sequencer.h => builtin/sequencer.h | 12 +-
contrib/completion/git-prompt.sh | 4 +-
git-rebase--am.sh | 12 +-
git-rebase--cherrypick.sh | 72 +++++++
git-rebase--interactive.sh | 4 +-
git-rebase--merge.sh | 151 --------------
git-rebase.sh | 16 +-
log-tree.c | 161 ++++++++++++++-
log-tree.h | 3 +
read-cache.c | 4 +
t/lib-rebase.sh | 33 ++++
t/t3400-rebase.sh | 53 +----
t/t3401-rebase-partial.sh | 69 -------
t/t3404-rebase-interactive.sh | 10 +-
t/t3406-rebase-message.sh | 56 +++---
t/t3407-rebase-abort.sh | 2 +-
t/t3409-rebase-preserve-merges.sh | 53 -----
t/t3420-rebase-autostash.sh | 5 +-
t/t3421-rebase-topology-linear.sh | 350 +++++++++++++++++++++++++++++++++
t/t3425-rebase-topology-merges.sh | 255 ++++++++++++++++++++++++
t/t3508-cherry-pick-many-commits.sh | 13 ++
t/t3510-cherry-pick-sequence.sh | 14 +-
t/t5520-pull.sh | 2 +-
t/t9106-git-svn-commit-diff-clobber.sh | 2 +-
t/t9903-bash-prompt.sh | 2 +-
unpack-trees.c | 4 +-
36 files changed, 1268 insertions(+), 616 deletions(-)
create mode 100644 builtin/rewrite.c
create mode 100644 builtin/rewrite.h
rename sequencer.c => builtin/sequencer.c (86%)
rename sequencer.h => builtin/sequencer.h (86%)
create mode 100644 git-rebase--cherrypick.sh
delete mode 100644 git-rebase--merge.sh
delete mode 100755 t/t3401-rebase-partial.sh
create mode 100755 t/t3421-rebase-topology-linear.sh
create mode 100755 t/t3425-rebase-topology-merges.sh
--
1.8.3.698.g079b096
next reply other threads:[~2013-06-09 16:43 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-09 16:40 Felipe Contreras [this message]
2013-06-09 16:40 ` [PATCH v4 01/45] build: generate and clean test scripts Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 02/45] build: do not install git-remote-testgit Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 03/45] build: trivial cleanup Felipe Contreras
2013-06-09 17:17 ` SZEDER Gábor
2013-06-09 16:40 ` [PATCH v4 04/45] build: add builtin lib Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 05/45] log-tree: remove dependency from sequencer Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 06/45] Move sequencer to builtin Felipe Contreras
2013-06-09 17:02 ` Antoine Pelisse
2013-06-09 17:06 ` Felipe Contreras
2013-06-09 17:07 ` Ramkumar Ramachandra
2013-06-09 17:10 ` Antoine Pelisse
2013-06-09 16:40 ` [PATCH v4 07/45] unpack-trees: plug a memory leak Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 08/45] read-cache: plug a few leaks Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 09/45] sequencer: remove useless indentation Felipe Contreras
2013-06-09 18:17 ` Fredrik Gustafsson
2013-06-09 18:19 ` Felipe Contreras
2013-06-09 19:08 ` Fredrik Gustafsson
2013-06-09 19:16 ` Felipe Contreras
2013-06-09 19:48 ` Fredrik Gustafsson
2013-06-09 16:40 ` [PATCH v4 10/45] sequencer: trivial fix Felipe Contreras
2013-06-09 17:18 ` SZEDER Gábor
2013-06-09 17:23 ` Felipe Contreras
2013-06-09 17:33 ` SZEDER Gábor
2013-06-09 17:37 ` John Keeping
2013-06-09 17:53 ` Felipe Contreras
2013-06-09 19:01 ` John Keeping
2013-06-09 19:11 ` Felipe Contreras
2013-06-09 19:20 ` SZEDER Gábor
2013-06-09 17:47 ` Felipe Contreras
2013-06-09 17:53 ` SZEDER Gábor
2013-06-09 18:21 ` Felipe Contreras
2013-06-09 21:09 ` Philip Oakley
2013-06-09 16:40 ` [PATCH v4 11/45] cherry-pick: don't barf when there's nothing to do Felipe Contreras
2013-06-09 19:21 ` Fredrik Gustafsson
2013-06-09 19:32 ` Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 12/45] cherry-pick: add --skip-empty option Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 13/45] revert/cherry-pick: add --quiet option Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 14/45] revert/cherry-pick: add --skip option Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 15/45] builtin: add rewrite helper Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 16/45] cherry-pick: store rewritten commits Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 17/45] cherry-pick: don't store skipped commit Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 18/45] builtin: move run_rewrite_hook() to rewrite.c Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 19/45] builtin: add copy_rewrite_notes() Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 20/45] cherry-pick: copy notes and run hooks Felipe Contreras
2013-06-09 17:22 ` Thomas Rast
2013-06-09 17:29 ` Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 21/45] cherry-pick: add --action-name option Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 22/45] cherry-pick: remember rerere-autoupdate Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 23/45] rebase: split the cherry-pick stuff Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 24/45] rebase: cherry-pick: fix mode storage Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 25/45] rebase: cherry-pick: fix sequence continuation Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 26/45] rebase: cherry-pick: fix abort of cherry mode Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 27/45] rebase: cherry-pick: fix command invocations Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 28/45] rebase: cherry-pick: fix status messages Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 29/45] rebase: cherry-pick: automatically commit stage Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 30/45] rebase: cherry-pick: set correct action-name Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 31/45] rebase: trivial cleanup Felipe Contreras
2013-06-09 19:15 ` Fredrik Gustafsson
2013-06-11 16:12 ` Junio C Hamano
2013-06-11 17:08 ` Fredrik Gustafsson
2013-06-11 17:09 ` Felipe Contreras
2013-06-11 17:24 ` Fredrik Gustafsson
2013-06-11 17:26 ` Felipe Contreras
2013-06-11 17:41 ` Fredrik Gustafsson
2013-06-11 17:42 ` Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 32/45] rebase: use 'cherrypick' mode instead of 'am' Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 33/45] rebase: cherry-pick: fix for shell prompt Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 34/45] rebase: cherry-pick: add merge options Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 35/45] rebase: remove merge mode Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 36/45] rebase: cherry-pick: add copyright Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 37/45] tests: fix autostash Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 38/45] add simple tests of consistency across rebase types Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 39/45] add tests for rebasing with patch-equivalence present Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 40/45] add tests for rebasing of empty commits Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 41/45] add tests for rebasing root Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 42/45] add tests for rebasing merged history Felipe Contreras
2013-06-09 17:25 ` Thomas Rast
2013-06-09 17:31 ` Felipe Contreras
2013-06-09 17:32 ` Thomas Rast
2013-06-09 17:46 ` Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 43/45] t3406: modernize style Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 44/45] tests: move test for rebase messages from t3400 to t3406 Felipe Contreras
2013-06-09 16:40 ` [PATCH v4 45/45] tests: update topology tests Felipe Contreras
2013-06-11 4:37 ` Martin von Zweigbergk
2013-06-11 4:41 ` Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1370796057-25312-1-git-send-email-felipe.contreras@gmail.com \
--to=felipe.contreras@gmail.com \
--cc=artagnon@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=martin.von.zweigbergk@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).