{"thread":{"id":"39595","subject":"[PATCH v2 00/19] Make git-am a builtin","startedAt":"2015-06-11T10:17:16Z","lastAt":"2015-06-11T10:17:16Z","messageCount":1,"participants":["Paul Tan"],"isPatch":true,"patchVersion":2,"patchTotal":19},"messages":[{"id":"263557","messageId":"1434017855-27954-1-git-send-email-pyokagan@gmail.com","threadId":"39595","inReplyTo":null,"subject":"[PATCH v2 00/19] Make git-am a builtin","fromName":"Paul Tan","fromEmail":"pyokagan@gmail.com","sentAt":"2015-06-11T10:17:16Z","receivedAt":"2015-06-11T10:17:16Z","isPatch":true,"sender":{"key":"pyokagan@gmail.com","avatar":"https://avatars.githubusercontent.com/u/109479?v=4"},"body":"This is a re-roll of [v1]. Thanks Junio, Torsten, Jeff, Eric for the reviews\nlast round.\n\nPrevious versions:\n\n[v1] http://thread.gmane.org/gmane.comp.version-control.git/270048\n\ngit-am is a commonly used command for applying a series of patches from a\nmailbox to the current branch. Currently, it is implemented by the shell script\ngit-am.sh. However, compared to C, shell scripts have certain deficiencies:\nthey need to spawn a lot of processes, introduce a lot of dependencies and\ncannot take advantage of git's internal caches.\n\nThis WIP patch series rewrites git-am.sh into optimized C builtin/am.c, and is\npart of my GSoC project to rewrite git-pull and git-am into C builtins[1].\n\n[1] https://gist.github.com/pyokagan/1b7b0d1f4dab6ba3cef1\n\n\nPaul Tan (19):\n  wrapper: implement xopen()\n  wrapper: implement xfopen()\n  am: implement skeletal builtin am\n  am: implement patch queue mechanism\n  am: split out mbox/maildir patches with git-mailsplit\n  am: detect mbox patches\n  am: extract patch, message and authorship with git-mailinfo\n  am: apply patch with git-apply\n  am: commit applied patch\n  am: refresh the index at start\n  am: refuse to apply patches if index is dirty\n  am: implement --resolved/--continue\n  am: implement --skip\n  am: implement --abort\n  am: implement quiet option\n  am: exit with user friendly message on patch failure\n  am: implement am --signoff\n  cache-tree: introduce write_index_as_tree()\n  am: implement 3-way merge\n\n Makefile          |    1 +\n builtin.h         |    1 +\n builtin/am.c      | 1214 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n cache-tree.c      |   29 +-\n cache-tree.h      |    1 +\n git-compat-util.h |    2 +\n git.c             |    1 +\n wrapper.c         |   43 ++\n 8 files changed, 1280 insertions(+), 12 deletions(-)\n create mode 100644 builtin/am.c\n\n-- \n2.1.4\n"}]}