From: Junio C Hamano <gitster@pobox.com>
To: Miklos Vajna <vmiklos@frugalware.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>, git@vger.kernel.org
Subject: Re: [PATCH] Introduce get_octopus_merge_bases() in commit.c
Date: Mon, 09 Jun 2008 16:06:12 -0700 [thread overview]
Message-ID: <7v8wxefbtn.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1213051426-11530-1-git-send-email-vmiklos@frugalware.org> (Miklos Vajna's message of "Tue, 10 Jun 2008 00:43:46 +0200")
Miklos Vajna <vmiklos@frugalware.org> writes:
> +struct commit_list *get_octopus_merge_bases(struct commit_list *in, int cleanup)
> +{
> + struct commit_list *ret, *i;
> +
> + ret = merge_bases_many(in->item, in->next);
> + if (cleanup)
> + for(i = in; i; i = i->next)
> + clear_commit_marks(i->item, all_flags);
> + return ret;
> +}
I suspect either me or you are confused, but how is this exactly used?
The code for merge_bases_many(), at least the one I showed you a few days
ago, is not a replacement for "show-branch --merge-base", and I do not
think you would want to use it as such in the rewrite of git-merge, if you
are trying to replace this part of git-merge.sh:
case "$#" in
1)
common=$(git merge-base --all $head "$@")
;;
*)
common=$(git show-branch --merge-base $head "$@")
;;
esac
The purpose of merge-base-many code was to improve this line in the
git-merge-octopus.sh:
common=$(git merge-base --all $MRC $SHA1) ||
die "Unable to find common commit with $SHA1"
Instead of keeping a single MRC, we can compute the merge-base-many
between the SHA1 (i.e. the one we are looking at right now -- it is fed as
"one") and all the previous SHA1's we have already looked at (they become
"two's"), like this:
common($git merge-base-many $SHA1 $SHA1_SO_FAR)
and you would have at the end of the loop:
SHA1_SO_FAR="$SHA1_SO_FAR$SHA1 "
or something.
next prev parent reply other threads:[~2008-06-09 23:07 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-05 20:44 [PATCH 00/10] Build in merge Miklos Vajna
2008-06-05 20:44 ` [PATCH 01/10] Move split_cmdline() to alias.c Miklos Vajna
2008-06-05 20:44 ` [PATCH 02/10] Move commit_list_count() to commit.c Miklos Vajna
2008-06-05 20:44 ` [PATCH 03/10] Move builtin-remote's skip_prefix() to git-compat-util.h Miklos Vajna
2008-06-05 22:38 ` Junio C Hamano
2008-06-06 23:42 ` [PATCH] Move parse-options's " Miklos Vajna
2008-06-05 20:44 ` [PATCH 04/10] Add new test to ensure git-merge handles pull.twohead and pull.octopus Miklos Vajna
2008-06-05 22:58 ` Junio C Hamano
2008-06-07 0:47 ` [PATCH] " Miklos Vajna
2008-06-05 20:44 ` [PATCH 05/10] parseopt: add a new PARSE_OPT_ARGV0_IS_AN_OPTION option Miklos Vajna
2008-06-05 20:44 ` [PATCH 06/10] Move read_cache_unmerged() to read-cache.c Miklos Vajna
2008-06-05 23:05 ` Junio C Hamano
2008-06-07 1:00 ` [PATCH] " Miklos Vajna
2008-06-05 20:44 ` [PATCH 07/10] git-fmt-merge-msg: make it useable from other builtins Miklos Vajna
2008-06-05 23:12 ` Junio C Hamano
2008-06-07 1:04 ` Miklos Vajna
2008-06-09 8:58 ` Andreas Ericsson
2008-06-09 22:53 ` [PATCH] git-fmt-merge-msg: make it usable " Miklos Vajna
2008-06-05 20:44 ` [PATCH 08/10] Introduce commit_list_append() in commit.c Miklos Vajna
2008-06-05 23:16 ` Junio C Hamano
2008-06-06 23:52 ` Miklos Vajna
2008-06-07 0:14 ` Junio C Hamano
2008-06-07 2:03 ` Miklos Vajna
2008-06-05 20:44 ` [PATCH 09/10] Introduce get_octopus_merge_bases() " Miklos Vajna
2008-06-06 3:51 ` Junio C Hamano
2008-06-06 5:53 ` Junio C Hamano
2008-06-06 12:28 ` Johannes Schindelin
2008-06-06 12:36 ` Johannes Schindelin
2008-06-06 15:36 ` Junio C Hamano
2008-06-07 21:38 ` [PATCH] " Miklos Vajna
2008-06-09 14:02 ` Johannes Schindelin
2008-06-09 22:43 ` Miklos Vajna
2008-06-09 22:55 ` Junio C Hamano
2008-06-09 23:08 ` Johannes Schindelin
2008-06-09 23:20 ` Junio C Hamano
2008-06-09 23:35 ` Miklos Vajna
2008-06-09 23:06 ` Junio C Hamano [this message]
2008-06-09 23:25 ` Miklos Vajna
2008-06-09 23:31 ` Johannes Schindelin
2008-06-09 23:41 ` Junio C Hamano
2008-06-10 0:03 ` Miklos Vajna
2008-06-10 2:43 ` Johannes Schindelin
2008-06-06 12:30 ` [PATCH 09/10] " Johannes Schindelin
2008-06-07 2:30 ` Miklos Vajna
2008-06-05 20:44 ` [PATCH 10/10] Build in merge Miklos Vajna
-- strict thread matches above, loose matches on Subject: below --
2008-06-11 20:50 [PATCH 08/10] Introduce get_octopus_merge_bases() in commit.c Miklos Vajna
2008-06-11 21:17 ` [PATCH] " Miklos Vajna
2008-06-11 23:51 ` Junio C Hamano
2008-06-12 16:59 ` Miklos Vajna
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=7v8wxefbtn.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=vmiklos@frugalware.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.