gnu-arch-users
[Top][All Lists]
Advanced

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

Re: [Gnu-arch-users] broken tree?


From: Tom Lord
Subject: Re: [Gnu-arch-users] broken tree?
Date: Sun, 5 Oct 2003 14:28:49 -0700 (PDT)

    > From: Colin Walters <address@hidden>

    > On Sun, 2003-10-05 at 16:19, Tom Lord wrote:
    > >     > From: Colin Walters <address@hidden>

    > >     > On Sun, 2003-10-05 at 14:53, Dustin Sallings wrote:
    > >     > >         I converted a tree from explicit to taglines and it 
broke pretty  
    > >     > > badly.  For example:
    > >     > I've seen this once before myself, but I'm having trouble 
reproducing
    > >     > it.  Do you know exactly what conditions trigger it?

    > > Given a file whose tag is currently defined by an embedded tag,
    > > without modifying the file, explicitly tag it.

    > I don't understand - Dustin said he was converting from explicit to
    > tagline, so why would the file already have an embedded tag?

Oops.  Bad explanation but (probably) right diagnosis.

The inode sig files contains a list of pairs:

        TAG     INODE-SIGNATURE

Anytime you can change the TAG without changing the INODE-SIGNATURE
you trigger the invariant.  

You can do that in an explicit->tagline conversion by, for example, 

        commit
        add embedded tags
        commit
        change explicit->tagline
        commit

or you can do it in the way I (inappropriately, in this context)
suggested, sticking just to tagline or during a tagline->explicit
converstion:

        commit
        add explicit tag to file with an embedded tag

There are probably other ways as well.

The invariant is helpful here in the sense that it prevents a path
through the code from being inappropriately taken, but the fix will be
to rework a bunch of other code so that the invariant can be deleted.

-t





reply via email to

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