Does Tower's Undo stack persist across application restarts?
0 reputation · 22 Feb 2022, 12:55 UTC
Undo Stack Persistence in Tower Git Client
Tower (Fournova's Git GUI) provides an Undo feature that reverses local repository operations including commits, merges, resets, and branch modifications. The documentation states that users can undo 'almost everything,' but the technical details of the undo mechanism's scope remain ambiguous.
The core uncertainty lies in whether the undo history survives application termination. If the undo stack is session-only, then quitting and relaunching Tower would eliminate the safety net for potentially destructive operations like hard resets, discarding staged changes, or deleting branches. This becomes particularly critical when users perform irreversible-seeming actions and later discover they cannot recover.
Tower's undo operates on Git's object model rather than a generic UI action stack, meaning interface-only actions are not reversible while repository-changing commands generally are. However, the implementation details of how many operations are retained, the order of undo operations, and whether this history is serialized to disk between sessions are not clearly specified in available documentation.
Behavior may vary between macOS and Windows builds, and the feature has evolved across major releases. Because Tower is proprietary software, the undo implementation cannot be audited from source code, making empirical testing the only reliable method to determine actual behavior. Users need to know whether their recovery options persist after closing the application.
What is the exact scope and lifetime of Tower's undo history? Does the undo stack survive a complete application restart, and if so, how many operations are retained? Are there platform-specific differences in undo behavior between macOS and Windows builds?