Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

Best way to handle multiple repositories - submodules, monorepo, or the third way?

Dmitry Linov Marketplace Partner Nov 06, 2020

Many of us are familiar with the case when a project consists of several cross-used repositories (e.g., two apps and a shared library). The native Git way to handle this situation is Git Submodules, but they are not very convenient to use, to say the least. The most popular approach today is to put everything in one large monorepository, but it also has significant shortcomings (well described here). I've even met people who refuse to migrate from SVN to Git mostly because they can't imagine their life without svn:externals.

We at TMate Software have faced this problem a while ago and ended up devising a third way. We made a server-side tool that creates a directory in one repository, synchronized with another repository. All syncing is done on the server - for the end-user, it's still one regular Git repository, no need to run any special commands or push to external repositories separately. We called it 'Git X-Modules'.

We've been using this for almost a year, and it seems to do the trick. So, now you can try it out at the Marketplace.

What do you think of such an approach? Have we missed something important? For what workflows it won't fit?



Log in or Sign up to comment
Community showcase
Published in Bitbucket

Git push size limits are coming to Bitbucket Cloud starting April 4th, 2022

Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...

2,894 views 3 9
Read article

Atlassian Community Events