All of lore.kernel.org
 help / color / mirror / Atom feed
From: A Large Angry SCM <gitzilla@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org, Junio C Hamano <junkio@cox.net>
Subject: Re: [PATCH] Additional merge-base tests
Date: Wed, 05 Jul 2006 09:15:18 -0700	[thread overview]
Message-ID: <44ABE596.40103@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.63.0607050952140.29667@wbgn013.biozentrum.uni-wuerzburg.de>

Johannes Schindelin wrote:
> Hi,
> 
> On Tue, 4 Jul 2006, A Large Angry SCM wrote:
> 
>> Johannes Schindelin wrote:
>>> Hi,
>>>
>>> On Tue, 4 Jul 2006, Junio C Hamano wrote:
>>>
>>>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>>>>
>>>>> We could introduce a time.maximumSkew variable, and just walk only that
>>>>> much further when traversing the commits.
>>>> We could have had "commit generation number" in the commit
>>>> object header, and use that instead of commit timestamps for
>>>> these traversal purposes.  The generation number for a commit is
>>>> defined to be max(generation number of its parents)+1 and we
>>>> prime the recursive this definition by defining the generation
>>>> number for the root commit to be one.
>>> Are you really, really sure this is a remedy? I, for one, am quite sure of
>>> the opposite. What you propose is just another time scale, only this time,
>>> it is not universally true (not even minus local incompetence to keep the
>>> clock accurate).
>> It works[*] and it does what using the timestamp was trying to do. Namely,
>> work from "more recent" (or "closer") commits toward "older" (or "farther")
>> commits until you've gone past the point you care about.
>>
>> It's a little late to be changing the structure of a commit and you'd have to
>> deal with some size/scale issues, but it's do-able. A better idea may be to
>> generate and keep the generation number on a per repository basis, and you'd
>> be able to work around changing grafts.
> 
> Like, inside the cache? I dunno. IMHO it is way too late to change the 
> structure of a commit in that particular manner, _plus_ you would get 
> overflow issues.

Your don't need to change the commit object, create some repository 
specific, local, auxiliary information. Overflow should not be a problem 
until a path length to a root commit exceeds the machine word size.

But is it really worth the work? Does it help anything other than 
merge-base?

>> [*] Grafts do _really_ nasty things to this. Just like clock skew does now.
> 
> Grafts can do much nastier things to you, for example having a circular 
> history. _But_ they cannot do that nasty thing outside of your repo. Clock 
> skews can.

If grafts in your repository create a cycle, the misbehavior of 
merge-base should be among the least of your concerns.

  reply	other threads:[~2006-07-05 16:15 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
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 [this message]
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=44ABE596.40103@gmail.com \
    --to=gitzilla@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /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.