Toad World® Forums

Git & Merges of models from different branches


I want to share a model with a colleague. Each of us can modify the model independently in our own working branches, to add new tables we are working on.

We have a common branch where all our changes come together to be released. How would one merge the incoming changes into the common model?

Here is the scenario:

  • reverse engineer and existing db into a model and commit the model in git in a branch called develop
  • dev1 creates branch develop1, works on the model and adds objects to the model, commits the model to branch develop1
  • dev2 creates branch develop2, works on the model and adds objects to the model, commits the model to branch develop2
  • Now, dev1 finishes his work and he has to merge his changes into develop. Can git merge be used with the TDM model files? Or, should "Merge Models" be used to merge the model from branch develop1 into the model from branch develop?


Hi bog,
when you have conflict in git you need at first download conflicted version use tool Model merge from TDM to reflect changes from git and after commit your changes and overwrite original on git.
Unfortunately there is now implemented direct merge support for git and merge as text is not a good way.


Thanks, that's what I thought. Do you have a command line utility for merging two models that would open up the merge dialog?

Does TDM support muti-user access to the same model?

Even with manual merge it is tricky and one has to be very careful. Scenario:

  • dev1 changes a field, let's call it Table1.Field1, from 50 to 100. Commits the change in git and merges the change into the main development branch, let's call it develop, with a fast forward merge
  • dev2, at the same time, on his working branch, adds some new tables and commits his change to git
  • now dev1 wants to merge dev2's change into develop. He uses the TDM merge models functionality.Table1.Field1 will appear as a difference. dev1 has to make sure he doesn't overwrite this change. Keeping track of these changes chronologically is tricky outside of git.

Is there anything that Toad can do to make it easier?

Unfortunately there is not command line utility for this. I agree that it should be nice feature. You can use idea pond to insert it and maybe it will be implemented in future.