From: Paul Tan <pyokagan@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
Stefan Beller <sbeller@google.com>, Paul Tan <pyokagan@gmail.com>
Subject: [PATCH v4 00/44] Make git-am a builtin
Date: Sun, 28 Jun 2015 22:05:22 +0800 [thread overview]
Message-ID: <1435500366-31700-1-git-send-email-pyokagan@gmail.com> (raw)
This patch series depends on pt/pull-builtin.
This is a re-roll of [WIP v3]. This patch series is now out of WIP, as the
git-am feature set is complete. I've marked out some features which lack tests
though, which I'm working on fixing.
Thanks Junio, Stefan, Johannes for the reviews last round.
Also, v4, with 44 patches ;-)
Previous versions:
[WIP v1] http://thread.gmane.org/gmane.comp.version-control.git/270048
[WIP v2] http://thread.gmane.org/gmane.comp.version-control.git/271381
[WIP v3] http://thread.gmane.org/gmane.comp.version-control.git/271967
git-am is a commonly used command for applying a series of patches from a
mailbox to the current branch. Currently, it is implemented by the shell script
git-am.sh. However, compared to C, shell scripts have certain deficiencies:
they need to spawn a lot of processes, introduce a lot of dependencies and
cannot take advantage of git's internal caches.
This WIP patch series rewrites git-am.sh into optimized C builtin/am.c, and is
part of my GSoC project to rewrite git-pull and git-am into C builtins[1].
[1] https://gist.github.com/pyokagan/1b7b0d1f4dab6ba3cef1
Paul Tan (44):
wrapper: implement xopen()
wrapper: implement xfopen()
builtin-am: implement skeletal builtin am
builtin-am: implement patch queue mechanism
builtin-am: split out mbox/maildir patches with git-mailsplit
builtin-am: auto-detect mbox patches
builtin-am: extract patch and commit info with git-mailinfo
builtin-am: apply patch with git-apply
builtin-am: implement committing applied patch
builtin-am: refuse to apply patches if index is dirty
builtin-am: implement --resolved/--continue
builtin-am: implement --skip
builtin-am: implement --abort
builtin-am: reject patches when there's a session in progress
builtin-am: implement -q/--quiet, GIT_QUIET
builtin-am: exit with user friendly message on failure
builtin-am: implement -s/--signoff
cache-tree: introduce write_index_as_tree()
builtin-am: implement --3way, am.threeway
builtin-am: implement --rebasing mode
builtin-am: bypass git-mailinfo when --rebasing
builtin-am: handle stray state directory
builtin-am: implement -u/--utf8
builtin-am: implement -k/--keep, --keep-non-patch
builtin-am: implement --[no-]message-id, am.messageid
builtin-am: support --keep-cr, am.keepcr
builtin-am: implement --[no-]scissors
builtin-am: pass git-apply's options to git-apply
builtin-am: implement --ignore-date
builtin-am: implement --committer-date-is-author-date
builtin-am: implement -S/--gpg-sign, commit.gpgsign
builtin-am: invoke post-rewrite hook
builtin-am: support automatic notes copying
builtin-am: invoke applypatch-msg hook
builtin-am: invoke pre-applypatch hook
builtin-am: invoke post-applypatch hook
builtin-am: rerere support
builtin-am: support and auto-detect StGit patches
builtin-am: support and auto-detect StGit series files
builtin-am: support and auto-detect mercurial patches
builtin-am: implement -i/--interactive
builtin-am: implement legacy -b/--binary option
builtin-am: check for valid committer ident
builtin-am: remove redirection to git-am.sh
Makefile | 2 +-
builtin.h | 1 +
builtin/am.c | 2335 +++++++++++++++++++++++++++++++
cache-tree.c | 29 +-
cache-tree.h | 1 +
git-am.sh => contrib/examples/git-am.sh | 0
git-compat-util.h | 2 +
git.c | 1 +
wrapper.c | 43 +
9 files changed, 2401 insertions(+), 13 deletions(-)
create mode 100644 builtin/am.c
rename git-am.sh => contrib/examples/git-am.sh (100%)
--
2.5.0.rc0.76.gb2c6e93
next reply other threads:[~2015-06-28 14:06 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-28 14:05 Paul Tan [this message]
2015-06-28 14:05 ` [PATCH v4 01/44] wrapper: implement xopen() Paul Tan
2015-06-29 4:48 ` Torsten Bögershausen
2015-06-29 5:04 ` Stefan Beller
2015-06-29 17:18 ` Junio C Hamano
2015-07-01 6:05 ` Paul Tan
2015-07-01 6:04 ` Paul Tan
2015-06-28 14:05 ` [PATCH v4 02/44] wrapper: implement xfopen() Paul Tan
2015-06-28 14:05 ` [PATCH v4 03/44] builtin-am: implement skeletal builtin am Paul Tan
2015-06-28 14:05 ` [PATCH v4 04/44] builtin-am: implement patch queue mechanism Paul Tan
2015-06-29 5:08 ` Stefan Beller
2015-07-07 12:50 ` Paul Tan
2015-06-28 14:05 ` [PATCH v4 05/44] builtin-am: split out mbox/maildir patches with git-mailsplit Paul Tan
2015-06-28 14:05 ` [PATCH v4 06/44] builtin-am: auto-detect mbox patches Paul Tan
2015-06-28 14:05 ` [PATCH v4 07/44] builtin-am: extract patch and commit info with git-mailinfo Paul Tan
2015-06-28 14:05 ` [PATCH v4 08/44] builtin-am: apply patch with git-apply Paul Tan
2015-06-28 14:05 ` [PATCH v4 09/44] builtin-am: implement committing applied patch Paul Tan
2015-06-28 14:05 ` [PATCH v4 10/44] builtin-am: refuse to apply patches if index is dirty Paul Tan
2015-06-28 14:05 ` [PATCH v4 11/44] builtin-am: implement --resolved/--continue Paul Tan
2015-06-28 14:05 ` [PATCH v4 12/44] builtin-am: implement --skip Paul Tan
2015-06-28 14:05 ` [PATCH v4 13/44] builtin-am: implement --abort Paul Tan
2015-06-28 14:05 ` [PATCH v4 14/44] builtin-am: reject patches when there's a session in progress Paul Tan
2015-06-28 14:05 ` [PATCH v4 15/44] builtin-am: implement -q/--quiet, GIT_QUIET Paul Tan
2015-06-28 14:05 ` [PATCH v4 16/44] builtin-am: exit with user friendly message on failure Paul Tan
2015-06-28 14:05 ` [PATCH v4 17/44] builtin-am: implement -s/--signoff Paul Tan
2015-06-28 14:05 ` [PATCH v4 18/44] cache-tree: introduce write_index_as_tree() Paul Tan
2015-06-28 14:05 ` [PATCH v4 19/44] builtin-am: implement --3way, am.threeway Paul Tan
2015-06-30 0:18 ` Stefan Beller
2015-06-28 14:05 ` [PATCH v4 20/44] builtin-am: implement --rebasing mode Paul Tan
2015-06-28 14:05 ` [PATCH v4 21/44] builtin-am: bypass git-mailinfo when --rebasing Paul Tan
2015-06-28 14:05 ` [PATCH v4 22/44] builtin-am: handle stray state directory Paul Tan
2015-06-28 14:05 ` [PATCH v4 23/44] builtin-am: implement -u/--utf8 Paul Tan
2015-06-28 14:05 ` [PATCH v4 24/44] builtin-am: implement -k/--keep, --keep-non-patch Paul Tan
2015-06-28 14:05 ` [PATCH v4 25/44] builtin-am: implement --[no-]message-id, am.messageid Paul Tan
2015-06-28 14:05 ` [PATCH v4 26/44] builtin-am: support --keep-cr, am.keepcr Paul Tan
2015-06-28 14:05 ` [PATCH v4 27/44] builtin-am: implement --[no-]scissors Paul Tan
2015-07-07 8:23 ` Paul Tan
2015-06-28 14:05 ` [PATCH v4 28/44] builtin-am: pass git-apply's options to git-apply Paul Tan
2015-06-29 23:56 ` Stefan Beller
2015-07-01 10:22 ` Paul Tan
2015-07-01 17:01 ` Stefan Beller
2015-06-28 14:05 ` [PATCH v4 29/44] builtin-am: implement --ignore-date Paul Tan
2015-06-28 14:05 ` [PATCH v4 30/44] builtin-am: implement --committer-date-is-author-date Paul Tan
2015-06-28 14:05 ` [PATCH v4 31/44] builtin-am: implement -S/--gpg-sign, commit.gpgsign Paul Tan
2015-06-29 23:51 ` Stefan Beller
2015-07-01 8:01 ` Paul Tan
2015-07-01 16:43 ` Stefan Beller
2015-06-28 14:05 ` [PATCH v4 32/44] builtin-am: invoke post-rewrite hook Paul Tan
2015-06-28 14:05 ` [PATCH v4 33/44] builtin-am: support automatic notes copying Paul Tan
2015-06-28 14:05 ` [PATCH v4 34/44] builtin-am: invoke applypatch-msg hook Paul Tan
2015-06-28 14:05 ` [PATCH v4 35/44] builtin-am: invoke pre-applypatch hook Paul Tan
2015-06-28 14:05 ` [PATCH v4 36/44] builtin-am: invoke post-applypatch hook Paul Tan
2015-06-28 14:05 ` [PATCH v4 37/44] builtin-am: rerere support Paul Tan
2015-06-28 14:06 ` [PATCH v4 38/44] builtin-am: support and auto-detect StGit patches Paul Tan
2015-06-29 20:42 ` Stefan Beller
2015-06-29 20:51 ` Eric Sunshine
2015-06-29 21:39 ` Junio C Hamano
2015-07-01 7:25 ` Paul Tan
2015-06-28 14:06 ` [PATCH v4 39/44] builtin-am: support and auto-detect StGit series files Paul Tan
2015-06-28 14:06 ` [PATCH v4 40/44] builtin-am: support and auto-detect mercurial patches Paul Tan
2015-06-29 20:32 ` Stefan Beller
2015-06-29 20:32 ` Stefan Beller
2015-07-01 9:07 ` Paul Tan
2015-07-01 8:48 ` Paul Tan
2015-06-28 14:06 ` [PATCH v4 41/44] builtin-am: implement -i/--interactive Paul Tan
2015-06-28 14:06 ` [PATCH v4 42/44] builtin-am: implement legacy -b/--binary option Paul Tan
2015-06-29 20:05 ` Stefan Beller
[not found] ` <CABPQNSakaoyNRuNz=bcDYWdy4e2O3M4UuYoOT5JAV1mt-BiAOw@mail.gmail.com>
2015-07-14 10:09 ` Paul Tan
2015-06-28 14:06 ` [PATCH v4 43/44] builtin-am: check for valid committer ident Paul Tan
2015-06-29 20:02 ` Stefan Beller
2015-07-01 6:43 ` Paul Tan
2015-06-28 14:06 ` [PATCH v4 44/44] builtin-am: remove redirection to git-am.sh Paul Tan
2015-06-29 5:01 ` [PATCH v4 00/44] Make git-am a builtin Stefan Beller
2015-06-30 0:19 ` Stefan Beller
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=1435500366-31700-1-git-send-email-pyokagan@gmail.com \
--to=pyokagan@gmail.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
--cc=sbeller@google.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).