Improved Git Management
This week we’re releasing a Git integration feature that introduces a significant improvement to editing and remote collaboration. Our goal was to mitigate conflicts (or “hosing”) that occur when changes are committed to the same stack branch from multiple workspaces and to enable harmonious collaboration.
For instance, one person may switch from editing functions in a code editor and push changes through the command line, then switch to the Stackery web app to make changes and push them from the UI. It’s also possible that multiple instances of the web app are open at once (in separate windows), causing changes in one instance to be lost by a push from another. Now, anytime changes are pushed, the UI will have awareness that a refresh or new branch is needed.
On a team, different members might be editing from the same branch without realizing their changes are at risk of being lost or trampling others. Instead of introducing conflicts or encountering rejected updates, changes can be isolated on a new branch without fear of collision.
Stacks created from this point forward will be provisioned with a webhook that enables remote detection. When a remote change triggers the webhook, an IoT socket channel sends a message to the UI. The message will appear with instructions to refresh the stack (reset to remote HEAD) or seamlessly branch the current changes.
In additions, the Stack Editor UI now provides the option to create a new branch by selecting “Create Branch…” from the list of stack branches.
This is especially helpful when someone makes changes before realizing they’ve been working on the wrong branch, and wants to easily continue editing without switching to the command line. Creating a new branch from the UI will preserve current changes and move them to a new branch. It is equivalent to
git checkout -b.
Our primary goal was not to replicate a comprehensive Git workflow but to provide safeguards when conflicting changes arise and peace-of-mind to collaborate comfortably and without hesitation.