Unqork’s Application Versioning feature provides ways to track or revert changes made to branches after a merge. Branch History lets you track changes made to an application when you choose to merge your branches into one another. Additionally, Branch Rollback lets you reset a branch to a previous state before an event in the Branch History occurred.
Discover how to use branch history in our Branch History Drawer article.
Benefits of Branch History
Branch History provides the following advantages:
Better understanding of feature development. Track change history between different branches.
Understanding design decisions. Messaging provided with each merge can clarify what changes were made.
Auditing and traceability. Clarity of who made what changes and when.
How It Works
You will see the history of a branch through events. The events that are tracked are:
Creation: What branch or version the branch was initially based on.
Merges: When a branch merges into another branch. For example, for Branch A, knowing when any other branch merged into A.
Publishing: When a semantic version was published for the branch.
Rollbacks: When a branch is rolled back to a previous state from the Branch History.
The information below is collected about each event:
Event type: Creation, merge, publish, and rollback are the available event type values.
Author: The Creator who triggered the event.
Reviewer: Whoever approved the change.
Timestamp: When the event occurred.
Note: An optional field to store any notes the Creator wants to include to explain the merge.
Changeset: A list of the changes that were made to the branch.
Creators can also revert changes made by a merge into their application and set the state of the application to match its definition at the time of the merge.
Considerations
When using Branch History, consider the following:
A Branch Rollback is considered an event that is tracked in the Branch History.
If either the source or target branches have changed mid-merge, you will be notified and can either restart your merge or overwrite.
Handling conflicts when reverting to a specific point in time:
Time is linear. For example, the Branch History is
T1 – T2 – T3. A Creator reverts toT1and then merges. It will be a new branch calledT4, but the configuration is ofT1. The Creator can choose to go back toT1orT2, but they are not removingT2. So, now the Branch History isT1 – T2 – T3 – T4.
There’s a parental relationship between the merges.
T2comes fromT1andT3comes fromT2.