plugin to reweave history, inserting ghosts

Martin Pool martinpool at gmail.com
Mon Oct 31 20:40:32 GMT 2005


On 26/10/05, Jan Hudec <bulb at ucw.cz> wrote:
> On Wed, Oct 26, 2005 at 18:30:12 +1000, Martin Pool wrote:
> > On 26/10/05, Jan Hudec <bulb at ucw.cz> wrote:

> > You may not *know* the hash or contents of the parent at the time you
> > create the child; this occurs all the time in arch.  You only know the
> > id.
>
> I commented on the text in parenthesis -- that the fact it identifies
> versions by hashes is irrelevant when it comes to whether it can have
> ghost revisions or not.

Consider the case of upgrading an arch archive.  It is very common for
them to contain records that revisions were merged from someone's
private development archive, which may be only on their laptop and not
mirrored.  That archive may not be accessible to the person doing the
upgrade, and in fact may no longer exist at all.  Arch does not copy
the contents of the revision when it merges, only the log headers. 
There is, therefore, no way for the upgrade to know the hash of the
merged revision; systems that use the hash of the inventory/manifest
of the revision to identify it can't include that reference.  You
could perhaps record it as a special kind of parent where only the id
is known, but then you probably can't go back and make it a proper
parent later.

Of course it's all about tradeoffs, and people might reasonably decide
that they thing supporting this is not so important.  I'm not saying
that every system has to do this; but we want to.

--
Martin




More information about the bazaar mailing list