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.
next prev parent 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 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).