Git X-Modules for gitlab


x-modules look like a neat solution for our future projects. When can we expect the GitLab plugin to be released? Thank you!

Hi Panolo,

Thank you for your interest in Git X-Modules! We are now adding the final touches to the new implementation of this product, that will be compatible with GitLab (as well as GitHub and Bitbucket Cloud). In a couple of months it will be released as a SaaS, and also as a downloadable Docker container, that you could host on your own server. Which way would be more convenient to you? Would you like to to try out the public beta as soon as it’s out?

Sure, trying out the beta would be great thanks!

We’re currently working with a self-hosted GitLab instance. What would be the best tool to use in this case?

You can do both ways. You can either set up access to your self-hosted GitLab in the Git X-Modules cloud service, or download and install such service on your own server. Our goal is to make it look and work the same, just like GitLab is the same in the cloud and on-premises.

  • Using Git X-Modules cloud service saves you server space and the installation process.
  • Self-hosting your own Git X-Modules service makes sure that your Git data never leaves your server, and makes you independent from a third-party service.

Sounds good.

Out of curiosity, is there a way to pick only certain commits to push and pull from a local repo to the external one and viceversa?

X-Module is always created for a certain branch. So there is an indirect way, like cherry-picking commits from your main branch to another brach, synced with an external server. However, could you describe your setup and workflow in more detail? Perhaps we could come up with a better solution.

We basically have a few modules containing shared code to be used across several projects.
It may happen that older projects don’t always need the latest version of a shared library. In those cases, we’d like to either stop pulling updates from certain libraries or just cherry-picking specific commits/features.

Yes, you can do that in various ways.

  1. An X-Module is a directory in your project repository, that is synced witha an external (module) repository. You can sync it with a specific branch, tag or commit. In the latter case the module will not be update automatically. So you can choose, which commit or tag to sync module with for each project.

  2. You can create a special branch in your shared (external) repository, sync this branch with a directory in your project repository, and cherry-pick to this branch the commits you want to be sent to the project repository. You will need such a branch for each of the different library versions you would like to maintain.

  3. You can create a special branch in your project repository, and create an X-Module there, then cherry-pick only the commits you need to your main project branch. We are now discussing a feature that will aplly patches from such special branch to the main project branch.

Cool thanks! Looking forward to the release.

(thread revive)

How is progress with X-modules for self-hosted GitLab servers? I have a lot of projects in SVN still because I use externals there and have lacked a similar and convenient way to share code between projects. Looking forward to testing X-modules and see if that is the missing key to migrate everything to git.

Hi Fredrik,

Thank you for getting in touch! The status is the following:

  • in a couple of months we are planning to release Git X-Modules SaaS for GitHub and GitLab Cloud;
  • a month or two later the same product will be available in a Docker container for self-hosted solutions.

We will keep you posted on both occasions. Thank you for your patience!

In the meantime, did you know that we also have a special tool for SVN to Git migration, called SubGit? It runs on-premises, so you might want to check it out.

By the way, how did you find out about Git X-Modules?

I don’t see Git X-Modules SaaS for GitLab Cloud. Do you have any updates on the timeline and is the beta version available for testing?

Hi Mark,

Unfortunately, we don’t have either release dates or a beta version available. We are now perfecting our cloud service for GitHub; as soon as it’s good enough, we will just add authorization options for GitLab.

By the way, have you tried the GitHub service, is it meeting your needs?