I have some changes in a DEVELOPMENT branch that I want to merge to the RELEASE branch. After creating the merge I exclude a particular line from being merged. What seems to happen after the merge is completed is that the excluded part is overwritten by the code from the RELEASE branch, so my original code is gone. Is this intentional? It looks like the merge is bi-directional.
What happens to exclusions during a merge?
Best answer by Mark Jongeling
Hi,
I assume the DEVELOPMENT branch (DEV) is a branch from the RELEASE branch (REL). This means if you want to continue working in DEV and merge with REL, that you will need to perform a reciprocal merge.
This will merge all changes from DEV into REL and all changes in REL to DEV. Then both are the same at that point. REL contains the same objects as DEV after this reciprocal merge.
If you were to exclude actions from this merge session, these (DEV) actions will be excluded and not merged to REL, and the merge session will undo/revert these actions in the DEV branch as a reciprocal merge dictates that the branches are exactly the same at that point. Excluding an action is not limited to excluding it from the merge session, it will be reverted to its prior state.
The Merge impact shows the impact the merge session has on the Source and Target branch in a reciprocal merge, but that is seen from the point from the other branch. Excluding an action does not show up as a Revert insert (for example) of the object in the other detail tab.
So, in short, any excluded action in a reciprocal merge is reverted in the source/target branch as the state of the branches must be exactly the same after a reciprocal merge.
Hope this sheds some light on it! I also wrote a blog about merging and the considerations:
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.

