From: Paul Tan <pyokagan@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
Stefan Beller <sbeller@google.com>,
Stephen Robin <stephen.robin@gmail.com>,
Paul Tan <pyokagan@gmail.com>
Subject: [PATCH v3 00/19] Make git-pull a builtin
Date: Sun, 14 Jun 2015 16:41:47 +0800 [thread overview]
Message-ID: <1434271326-11349-1-git-send-email-pyokagan@gmail.com> (raw)
This is a re-roll of [v2]. Thanks Junio, Stefan for the reviews last round.
Previous versions:
[v1] http://thread.gmane.org/gmane.comp.version-control.git/269258
[v2] http://thread.gmane.org/gmane.comp.version-control.git/270639
git-pull is a commonly executed command to check for new changes in the
upstream repository and, if there are, fetch and integrate them into the
current branch. Currently it is implemented by the shell script git-pull.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 series rewrites git-pull.sh into a C builtin, thus improving its
performance and portability. It is part of my GSoC project to rewrite git-pull
and git-am into builtins[1].
[1] https://gist.github.com/pyokagan/1b7b0d1f4dab6ba3cef1
Paul Tan (19):
parse-options-cb: implement parse_opt_passthru()
parse-options-cb: implement parse_opt_passthru_argv()
argv-array: implement argv_array_pushv()
pull: implement skeletal builtin pull
pull: implement fetch + merge
pull: pass verbosity, --progress flags to fetch and merge
pull: pass git-merge's options to git-merge
pull: pass git-fetch's options to git-fetch
pull: error on no merge candidates
pull: support pull.ff config
pull: check if in unresolved merge state
pull: fast-forward working tree if head is updated
pull: implement pulling into an unborn branch
pull: set reflog message
pull: teach git pull about --rebase
pull: configure --rebase via branch.<name>.rebase or pull.rebase
pull --rebase: exit early when the working directory is dirty
pull --rebase: error on no merge candidate cases
pull: remove redirection to git-pull.sh
Documentation/technical/api-argv-array.txt | 3 +
Documentation/technical/api-parse-options.txt | 13 +
Makefile | 2 +-
advice.c | 8 +
advice.h | 1 +
argv-array.c | 6 +
argv-array.h | 1 +
builtin.h | 1 +
builtin/pull.c | 881 ++++++++++++++++++++++++++
git-pull.sh => contrib/examples/git-pull.sh | 0
git.c | 1 +
parse-options-cb.c | 69 ++
parse-options.h | 6 +
13 files changed, 991 insertions(+), 1 deletion(-)
create mode 100644 builtin/pull.c
rename git-pull.sh => contrib/examples/git-pull.sh (100%)
--
2.1.4
next reply other threads:[~2015-06-14 8:42 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-14 8:41 Paul Tan [this message]
2015-06-14 8:41 ` [PATCH v3 01/19] parse-options-cb: implement parse_opt_passthru() Paul Tan
2015-06-14 8:41 ` [PATCH v3 02/19] parse-options-cb: implement parse_opt_passthru_argv() Paul Tan
2015-06-14 8:41 ` [PATCH v3 03/19] argv-array: implement argv_array_pushv() Paul Tan
2015-06-14 8:41 ` [PATCH v3 04/19] pull: implement skeletal builtin pull Paul Tan
2015-06-14 8:41 ` [PATCH v3 05/19] pull: implement fetch + merge Paul Tan
2015-06-14 8:41 ` [PATCH v3 06/19] pull: pass verbosity, --progress flags to fetch and merge Paul Tan
2015-06-14 8:41 ` [PATCH v3 07/19] pull: pass git-merge's options to git-merge Paul Tan
2015-06-14 8:41 ` [PATCH v3 08/19] pull: pass git-fetch's options to git-fetch Paul Tan
2015-06-14 8:41 ` [PATCH v3 09/19] pull: error on no merge candidates Paul Tan
2015-06-14 8:41 ` [PATCH v3 10/19] pull: support pull.ff config Paul Tan
2015-06-14 8:41 ` [PATCH v3 11/19] pull: check if in unresolved merge state Paul Tan
2015-06-14 8:41 ` [PATCH v3 12/19] pull: fast-forward working tree if head is updated Paul Tan
2015-06-14 8:42 ` [PATCH v3 13/19] pull: implement pulling into an unborn branch Paul Tan
2015-06-14 8:42 ` [PATCH v3 14/19] pull: set reflog message Paul Tan
2015-06-14 8:42 ` [PATCH v3 15/19] pull: teach git pull about --rebase Paul Tan
2015-06-14 8:42 ` [PATCH v3 16/19] pull: configure --rebase via branch.<name>.rebase or pull.rebase Paul Tan
2015-06-14 8:42 ` [PATCH v3 17/19] pull --rebase: exit early when the working directory is dirty Paul Tan
2015-06-14 8:42 ` [PATCH v3 18/19] pull --rebase: error on no merge candidate cases Paul Tan
2015-06-14 8:42 ` [PATCH v3 19/19] pull: remove redirection to git-pull.sh Paul Tan
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434271326-11349-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 \
--cc=stephen.robin@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.
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 NNTP newsgroup(s).