I came across an interesting feature of monotone, and I think it may be the kind of operation that I would like:
"mtn disapprove"
"""
This command records a disapproval of the changes between id's ancestor and id. It does this by committing the inverse changes as a new revision descending from id. The new revision will show up as a new head and thus a subsequent merge will incorporate the inverse of the disapproved changes in the other head(s).
Conceptually, disapproves contract is that disapprove(A) gives a revision B such that whenever B is merged with a descendant D of A the merge will result in what D “would have looked like” if A had never happened.
Note that as a consequence of this contract the disapprove command only works if id has exactly one ancestor, since it hasn't been worked out how to generate such a descendant in the multi-ancestor case.
"""
I can't tell for sure, but it looks like this is the kind of operation that I need in bzr. I don't know monotone's model, but it may be interesting to look at how they implement it.
I came across an interesting feature of monotone, and I think it may be the kind of operation that I would like:
"mtn disapprove"
"""
This command records a disapproval of the changes between id's ancestor and id. It does this by committing the inverse changes as a new revision descending from id. The new revision will show up as a new head and thus a subsequent merge will incorporate the inverse of the disapproved changes in the other head(s).
Conceptually, disapproves contract is that disapprove(A) gives a revision B such that whenever B is merged with a descendant D of A the merge will result in what D “would have looked like” if A had never happened.
Note that as a consequence of this contract the disapprove command only works if id has exactly one ancestor, since it hasn't been worked out how to generate such a descendant in the multi-ancestor case.
"""
From http:// monotone. ca/docs/ Tree.html
I can't tell for sure, but it looks like this is the kind of operation that I need in bzr. I don't know monotone's model, but it may be interesting to look at how they implement it.