oh-my-zsh upgrade command: missing rollback capability
0 reputation · 16 May 2020, 10:09 UTC
oh-my-zsh upgrade command: missing rollback capability
The current upgrade procedure pulls the latest changes directly into the $ZSH directory. If the pull is interrupted or conflicts arise, the repository can be left in a half‑applied state, potentially breaking the shell or plugins. Because the script does not create a transactional snapshot or expose a rollback option, users must manually restore or reclone the framework, which is error‑prone and inconvenient.
Key constraints include preserving user customizations in $ZSH_CUSTOM, avoiding accidental overwrite of local modifications, and ensuring that the upgrade does not interfere with concurrent edits or submodule updates. A safe recovery path would need to be built into the upgrade routine without requiring extra user steps.
Unresolved questions:
- What mechanisms could be integrated into the upgrade script to perform an atomic pull, such as creating a temporary branch or snapshot before merging?
- How could a pre‑upgrade backup of the repository be stored without duplicating large files or affecting user customizations?
- What filesystem or git permissions are necessary to lock the framework directory during an upgrade to prevent concurrent modifications?