evan_tech

Previous Entry Share Next Entry
04:25 pm, 21 Feb 04

more tla trickery

Gaal (via the patch queue) committed on the wrong LogJam branch. Don't blame him too much: it was the script I sent him that had the wrong branch hardcoded in it.

But now I needed to revert his patch. It was a bit trickier than I expected, due to the distributed nature of arch. ("The distributed nature of arch" is one of those phrases everyone uses that is both true and a little annoying, sorta like "elegant unix underpinnings" when talking about MacOS X.)

As I wrote to Gaal:
it'd be nice to just delete the patch, but as [irc people] pointed out, it's possible someone has already mirrored the archive and then a later patch with the same name would've confused everything. so the fix is to undo the patch, with the exception of not undoing the existence of the patch: so you committed patch-10. i do a "tla replay --reverse patch-10", but that brings me back to patch-9 and i can no longer commit because i don't have the latest version. so i have to bring in the patch-10 log so it looks like i'm at version patch-10.

there's a command "sync-tree" that basically means "pretend i have some other version and update all the metadata appropriately". but that isn't what we want, either, because if you sometime later really *did* want to commit your branch, we don't want [my] branch to think that it already has your patches. so we need most of the undo to happen (because it also undoes that your patches have been merged) but we don't want to undo the fact that patch-10 itself exists.

*whew* distributed stuff is really hard. :)