Undo Local Commit Without Losing Generality