Branching and staged changes
A Git-style branch for configuration, minus the merge-conflict markers.
By the OneEnv team · Last updated
What it is
Instead of applying an edit to a master, OneEnv records it as a staged change on a branch. The record keeps the value before and after the edit. The master is untouched until the branch is reviewed and merged.
Why it matters
It lets related edits (a new host, a renamed route, a new column) be reviewed together, makes concurrent edits detectable, and leaves a permanent record: a merged branch with its changes is the version history.
Lifecycle
- Draft: you can stage, rebase, submit or discard.
- Submitted: waiting for an Owner or Admin decision.
- Merged: applied. A merged branch can be reverted into a new draft branch.
- Rejected: nothing was applied. Start a new branch to rework.
Step by step
- Use the branch selector in the top bar and choose
New branch. Enter a name and an optional description. The branch records the workspace version it started from. - Make governed edits while the branch is selected. A later edit to the same item on the same branch replaces the earlier one.
- Open
Branches, open your branch, check the staged changes, and chooseSubmit for review. A branch with no staged changes cannot be submitted. - If someone changed the same item after your branch began, you will see
MERGE_CONFLICT. ChooseRebaseto re-read the current values, then submit again. - To abandon a draft, choose
Discard. This cannot be undone.
Conflict detection
For each staged change, OneEnv compares the recorded 'before' value with the item's current value at submit and at merge. A difference means something else changed it in the meantime and merging is blocked until you rebase. Creating something new never conflicts.
Revert
An Owner or Admin can revert a merged branch. This creates a new draft branch with before and after swapped for each update change, which then goes through the normal review. Creations and deletions are skipped and reported, not silently mishandled.
Limitations
- There are no comments or 'request changes' on a branch. Reject and rework on a new branch.
- A reviewer approves or rejects the whole branch, not parts of it.
