monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] partial pull #2 - gaps instead of a single horizon


From: Markus Schiltknecht
Subject: Re: [Monotone-devel] partial pull #2 - gaps instead of a single horizon
Date: Fri, 25 May 2007 15:17:39 +0200
User-agent: Icedove 1.5.0.10 (X11/20070329)

Hi,

Timothy Brownawell wrote:
How special does it have to be? The only differences I see are that (1)
it has a different revision_id, so we need something signed by the
server saying the most recent revision that it replaces, and (2) it can
have >2 parents.

Revision id different from what? Different from the hash of the textual sentinel description, sure. But the revision id of a sentinel should be exactly the revision id it stands for, i.e. the first revision above the horizon - or the newest or whatever you call it. That only blows some sanity checks, but that's easily fixable.

Then, >2 parents, could be, yes. Another additional requirement is probably having a height larger than one, but I don't know the height caching stuff well enough to be able to tell. What I'd like to achieve is, being able to add real revisions by simply adding them and deleting the sentinel, without having to regenerate caches.

I think there are really only problems with *generating* revisions with
multiple ancestors; the only reason we can't have them in history is
because we chose to have the sanity checking not allow it.

Uhm.. I remember Nathaniel saying, that mark merge might be tricky with multiple (>2) ancestors. And as we would have to be able to provide a roster for the gap, we need to provide those markings.

How much do we need to preserve? We currently either need any revisions
in which files were added or an assertion by the server that certain
apparently different files are really the same, and maybe some
intermediate nodes to preserve some amount of the graph shape (not
*necessary*, but useful for having reasonable common ancestors for text
merge).

Uhm.. dunno.

But theoretically, think of replacing all revs in a gap with a single revision. You could have committed it all in one go, no? That's how I'm thinking the sentinel could 'trick' the merge algorithm (and a lot of the rest of the monotone machinery).

How much do we need to preserve? Well, all the files which were added in *any* of the revisions in the gap. But none of the revision texts themselves. That's the goal of partial pull: only pull the files and not care about historical information.

Regards

Markus





reply via email to

[Prev in Thread] Current Thread [Next in Thread]