[Top][All Lists]
[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