Subject: [PATCH 00/10] Build in merge

From: Miklos Vajna <[email-masked]>
Date: Thu, 5 Jun 2008 22:44:26 +0200

This series is a rewrite of git-merge in C.

I already sent a WIP version of this series, it already worked at that
time, but I had numerous internal TODOs in the code.

I also tried to use the internal API wherever it was possible to avoid
the expensive run_command() calls.

At the moment I am not aware of any bugs in ugly parts in the code, so I
would appreciate if I could get some comments (positive or negative) on
it.

And yes, I'm aware that it's already late for 1.5.6, I'm sending it out
so that I can work on issues pointed out by others in the meantime.

Thanks.

Miklos Vajna (10):
  Move split_cmdline() to alias.c
  Move commit_list_count() to commit.c
  Move builtin-remote's skip_prefix() to git-compat-util.h
  Add new test to ensure git-merge handles pull.twohead and
    pull.octopus
  parseopt: add a new PARSE_OPT_ARGV0_IS_AN_OPTION option
  Move read_cache_unmerged() to read-cache.c
  git-fmt-merge-msg: make it useable from other builtins
  Introduce commit_list_append() in commit.c
  Introduce get_octopus_merge_bases() in commit.c
  Build in merge

 Makefile                                      |    2 +-
 alias.c                                       |   54 ++
 builtin-fmt-merge-msg.c                       |  157 ++--
 builtin-merge-recursive.c                     |    8 -
 builtin-merge.c                               | 1147 +++++++++++++++++++++++++
 builtin-read-tree.c                           |   24 -
 builtin-remote.c                              |    6 -
 builtin.h                                     |    4 +
 cache.h                                       |    3 +
 commit.c                                      |   59 ++
 commit.h                                      |    3 +
 git-merge.sh => contrib/examples/git-merge.sh |    0 
 git-compat-util.h                             |    6 +
 git.c                                         |   54 +--
 parse-options.c                               |   19 +-
 parse-options.h                               |    1 +
 read-cache.c                                  |   24 +
 t/t7601-merge-pull-config.sh                  |   57 ++
 18 files changed, 1460 insertions(+), 168 deletions(-)
 create mode 100644 builtin-merge.c
 rename git-merge.sh => contrib/examples/git-merge.sh (100%)
 create mode 100755 t/t7601-merge-pull-config.sh