Evan Martin (evan) wrote in evan_tech,
Evan Martin

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. :)

  • your vcs sucks

    I've been hacking on some Haskell stuff lately that's all managed in darcs and it's reminded me of an observation I made over two years ago now (see…

  • using git grafts to restore svn merge history

    Here's a quick tutorial on using git grafts to fill in implied svn merge history. Say you're using git-svn to track a project, which has a trunk…

  • topgit

    TopGit - A different patch queue manager: this looks like exactly what I've been wishing for! You can express interdependencies between branches,…

  • Post a new comment


    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.