Pulling and Pushing Items Between Branches
You can add an item from one branch to another by pulling or pushing them. When that is done, it’s the same item on both branches where the ID of the item remains the same, meaning that this will not result in direct merge conflicts.
- Pushing an item: Adding an item from a branch that a user is currently on, to another branch.
- Pulling an item: Adding an item to a branch that the user is currently on, from another branch.
Pushing is currently out in alpha and pulling will be available in March 2025. Contact us to get access.
Pushing items to another branch (alpha)
Pushing events, properties and property bundles from the branch that a user is currently on, to another branch is possible from the Tracking plan changes view. To access the tracking plan changes view, first you have to be on a branch and then you can click “View Changes” under the branch name.
In the tacking plan changes view, each changed item is displayed individually. For the items that can be pushed to another branch (currently events, properties and property groups), there is a button in the top right corner for pushing the item.
When that button is clicked, you will get a modal that prompts you to pick a branch to push the changes to and review your selection. You have to first pick a branch so that Avo can accurately display how the changes will be applied, as it might differ per branch if the item already exists on the destination branch.

When the destination branch is selected, the actual diff for the destination branch is shown. The items shown can be expanded to show the details of what will be added to the destination branch. If the item you selected to push is an event or a property bundle, any related property changes are displayed below. Avo determines which changes are necessary to push to the destination branch leaving out changes that are unrelated to the selected event. See the property changes related to event section for details. Once you have reviewed your selection, you can click the Push to branch button and the changes will be applied to the destination branch.

Then you can navigate to your destination branch and use the item you pushed there.
Pulling items from another branch (coming in March 2025)
Soon it will be possible to search and get results from other branches. Those item can be pulled to the branch the user is on, and can be used on that branch.
Merging branches where items have been pushed or pulled
When either the source or destination branch where items have been pushed or pulled are merged to main, you will be prompted to pull main on the branch where the items still remain. As the ID of the items are the same, the items exist on main and there is no need to keep them specifically on the other branch. However, changes to these items between the branches will reconcile and the remaining diff will appear instead of the excluded item or changes.
Property changes related to event
When an event or property bundle is selected to push to another branch, the review modal will show a list of properties related to the event or property bundle. By default, all related properties and their changes are kept on the event or property bundle.
For events, it’s possible to toggle whether the related properties and their changes are pushed too. The related property changes are the following:
- Any new properties that were added to the selected item and do not exist on the destination branch
- When toggled off on events, the property will be excluded on the destination branch
- Any existing properties that were added to the selected item and are not on the event on the destination branch
- When toggled off on events, any changes to the property will be excluded on the destination branch
- Any existing properties on the selected item have been modified such that they are different on the destination branch
- When toggled off on events, any changes to the property will be excluded on the destination branch, but the property will remain on the event.

What can be pushed and pulled and from where?
Pushing (and soon pulling) is currently available for the following items:
- Events
- Properties
- Property bundles
Pushing is available for new and updated items from the following views:
- Tracking plan changes (button on each item that can be pushed)
Pushing and pulling use cases
Pushing and pulling has several use cases. Some examples are below.
Breaking down a large branch
It often happens when designing data, that a branch becomes quite big, containing a lot of event and property changes. Then it’s helpful to be able to break that branch into more manageable chunks, both to make review and implementation easier.
That is now possible by pushing items from the diff view to different branches.
One team is ready to implement but not others
Commonly, Avo branches need to be implemented by more than one team. In many cases, teams are not able to implement in parallel, so it can be helpful to break the branches down for each team.
Now this is possible for platform teams. If for example the iOS team is ready to implement first, then items with the iOS source can be pushed to another branch. On the destination branch, other sources can be removed from events and/or property presence per source can be adjusted. Then the iOS team can implement for only the iOS source, merge the branch and the changes will remain for the other sources on the original branch.
Reusing properties between open branches
Sometimes implementation of the branch blocks it to be merged to main and then the items that have been created on the branch can not be used on other branches. Or sometimes different people are designing data for separate features in parallel and end up creating duplicate events on separate branches. That happens because previously, Avo didn’t surface items from other branches. But that is coming soon.
Now however, if a branch is blocked for whatever reason, you can go to that branch and push the item you want to reuse to your branch.