Can we get the transactionality by `git stash`ing the user's METADATA at the beginning of the operation, attempting to carry out the operation, then on failure `git stash pop` back to the previous state (on success, `git stash drop`)?