git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: A Large Angry SCM <gitzilla@gmail.com>
To: Junio C Hamano <junkio@cox.net>, git@vger.kernel.org
Cc: torvalds@osdl.org
Subject: Re: [PATCH] Additional merge-base tests
Date: Mon, 03 Jul 2006 23:41:50 -0700	[thread overview]
Message-ID: <44AA0DAE.1060308@gmail.com> (raw)
In-Reply-To: <7v3bdhoraa.fsf@assigned-by-dhcp.cox.net>

Junio C Hamano wrote:
> A Large Angry SCM <gitzilla@gmail.com> writes:
> 
>> This demonstrates a problem with git-merge-base.
>>  
>> +# Setup for second test set
>> +#
>> +#   PL  PR
>> +#  /  \/  \
>> +# L2  C2  R2
>> +# |   |   |
>> +# L1  C1  R1
>> +# |   |   |
>> +# L0  C0  R0
>> +#   \ |  /
>> +#     S
> 
> Cute.
> 
> This is a good demonstration that merge-base may not give you
> minimal set for pathological cases.  If you want to be through
> you could traverse everything to make sure we do not say 'S' is
> relevant, but that is quite expensive, so I think there will
> always be artifacts of horizon effect like this no matter how
> you try to catch it (didn't I keep saying that already?).

Not _that_ pathological in practice, given that you can't really depend 
on the timestamps in a distributed SCM.

The problem is in mark_reachable_commits(); it is either superfluous or 
it needs to parse_commit() those commits that haven't been parsed yet 
that it needs to traverse.

> However, I do not think it is really a "problem".  At least what
> "merge-base --all" did not miss any, that should be OK.

The degree of the problem is, admittedly, situational.

> I think the practical way to proceed is to say that the test
> condition should really check that we do not _omit_ C2 in the
> merge-base --all output.

I do not believe that the (current) code will miss any bases but it can 
certainly return bases that are reachable from other bases.

  reply	other threads:[~2006-07-04  6:42 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-04  3:55 [PATCH] Additional merge-base tests A Large Angry SCM
2006-07-04  5:47 ` Junio C Hamano
2006-07-04  6:41   ` A Large Angry SCM [this message]
2006-07-04  7:17     ` Junio C Hamano
2006-07-04  7:45     ` Junio C Hamano
2006-07-04  8:23       ` Johannes Schindelin
2006-07-04 10:38         ` Junio C Hamano
2006-07-04 11:16           ` Jakub Narebski
2006-07-04 11:35             ` Johannes Schindelin
2006-07-04 11:40           ` Johannes Schindelin
2006-07-04 20:18         ` A Large Angry SCM
2006-07-04 21:15         ` Junio C Hamano
2006-07-04 22:25           ` Johannes Schindelin
2006-07-04 22:42             ` Junio C Hamano
2006-07-04 23:07             ` A Large Angry SCM
2006-07-04 23:14               ` Jakub Narebski
2006-07-04 23:39                 ` Junio C Hamano
2006-07-05  0:26                 ` A Large Angry SCM
2006-07-05  0:24               ` Junio C Hamano
2006-07-05  7:56               ` Johannes Schindelin
2006-07-05 16:15                 ` A Large Angry SCM
2006-07-05 17:04                   ` Johannes Schindelin
2006-07-05  8:39           ` Josef Weidendorfer
2006-07-05 14:28             ` A Large Angry SCM
2006-07-04 20:08       ` A Large Angry SCM
2006-07-05  0:59       ` Junio C Hamano

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=44AA0DAE.1060308@gmail.com \
    --to=gitzilla@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=torvalds@osdl.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 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).