git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@osdl.org>
To: Alex Riesen <raa.lkml@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <junkio@cox.net>,
	Fredrik Kuivinen <freku045@student.liu.se>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: CFT: merge-recursive in C (updated)
Date: Tue, 27 Jun 2006 11:22:53 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0606271116360.3927@g5.osdl.org> (raw)
In-Reply-To: <81b0412b0606270848v2253209aw52466de632ab25c1@mail.gmail.com>



On Tue, 27 Jun 2006, Alex Riesen wrote:
> 
> Good news is that it is faster: 6min vs 10min. Bad news is that it is still
> not enough for me and it is only on Linux (Windows will be slower,
> still testing),
> uses an awful lot of memory and CPU.

Why do you do that horrible node_list, and the broken "find common 
ancestors?"

I can't follow your code, but it _looks_ like you are using some totally 
broken graph walking function.

For git, the #1 optimization ALWAYS is to avoid walking the full commit 
graph. That fundamentally _cannot_ scale. 

Almost all of the "hard work" in git has been to try to read the minimum 
amount of commits possible. That means that you absolutely must not just 
walk the commits the "obvious" way, because that will always require you 
to build up the whole graph of the whole history, even if the common 
shared point is much closer.

So it look slike your "graph.c" is _fundamentally_ flawed.

You need to really read "git-merge-base.c" and understand it thoroughly. 
And then you need to throw away your graph.c, and use git-merge-base 
instead.

			Linus

  parent reply	other threads:[~2006-06-27 18:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-27 15:48 CFT: merge-recursive in C (updated) Alex Riesen
2006-06-27 16:42 ` Johannes Schindelin
2006-06-27 22:32   ` Alex Riesen
2006-06-28  9:34     ` Alex Riesen
2006-06-28 10:04       ` Johannes Schindelin
2006-06-28 11:35         ` Alex Riesen
2006-06-28 12:55           ` Johannes Schindelin
2006-06-28 14:27             ` Alex Riesen
2006-06-28 15:09               ` Johannes Schindelin
2006-06-29  0:25       ` Alex Riesen
2006-06-29  2:41         ` Junio C Hamano
2006-06-29  8:43           ` Alex Riesen
2006-06-29 18:40             ` Johannes Schindelin
2006-06-29 23:28               ` Alex Riesen
2006-06-29 13:16     ` Johannes Schindelin
2006-06-29 13:16     ` [PATCH 1/2] refactor merge_bases() as preparation to libify merge-base Johannes Schindelin
2006-06-29 13:17     ` [PATCH] move get_merge_bases() to core lib; use it in merge-recursive Johannes Schindelin
2006-06-29 13:21       ` Johannes Schindelin
2006-06-29 14:12         ` Alex Riesen
2006-06-29 16:14           ` Johannes Schindelin
2006-06-29 14:13       ` Alex Riesen
2006-06-29 14:14       ` Alex Riesen
2006-06-29 16:14         ` Johannes Schindelin
2006-06-29 18:26           ` Linus Torvalds
2006-06-29 18:39           ` Junio C Hamano
2006-06-29 19:06             ` Johannes Schindelin
2006-06-29 20:58               ` Junio C Hamano
2006-06-30  0:27               ` Alex Riesen
2006-06-27 18:22 ` Linus Torvalds [this message]
2006-06-27 18:45   ` CFT: merge-recursive in C (updated) Johannes Schindelin
2006-06-27 19:10     ` Linus Torvalds
2006-06-27 22:36       ` Alex Riesen

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=Pine.LNX.4.64.0606271116360.3927@g5.osdl.org \
    --to=torvalds@osdl.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=freku045@student.liu.se \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=raa.lkml@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).