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.