+class Fakestack(object):
+ """Imitates a real L{Stack<stgit.lib.stack.Stack>}, but with the
+ topmost patch popped."""
+ def __init__(self, stack):
+ appl = list(stack.patchorder.applied)
+ unappl = list(stack.patchorder.unapplied)
+ hidd = list(stack.patchorder.hidden)
+ class patchorder(object):
+ applied = appl[:-1]
+ unapplied = [appl[-1]] + unappl
+ hidden = hidd
+ all = appl + unappl + hidd
+ self.patchorder = patchorder
+ class patches(object):
+ @staticmethod
+ def get(pn):
+ if pn == appl[-1]:
+ class patch(object):
+ commit = stack.patches.get(pn).old_commit
+ return patch
+ else:
+ return stack.patches.get(pn)
+ self.patches = patches
+ self.head = stack.head.data.parent
+ self.top = stack.top.data.parent
+ self.base = stack.base
+ self.name = stack.name
+ self.repository = stack.repository