How to synchronize two non-networked GitLab servers?


I’m using a self hosted CE edition of GitLab. I collaborate with another lab that also has a self hosted CE Gitlab install (currently empty with no projects). Our two networks cannot be shared. Previous to GitLab, we just used Git. We were able to keep our two servers in sync by periodically,

  1. git fetch --all; git pull -all (for each branch for each repository)
  2. making a .tar of each .git folder for each repo
  3. extracting the .tar on the other non-networked server
  4. importing by adding a temporary git remote and then git fetching, checking out, pulling each branch for each repo.

this was all done through bash scripts and has worked pretty well over the years (multiple bi-directional syncs). Now that we have both migrated to the self hosted CE GitLab system. I have two questions:

A) How can I export a project and include all submodules in the export?
B) Once the exported projects from one server are imported into the second server… is there a natural way to keep them synchronized through GitLab? Or, do I need to continue to use the Git “add remote” method above?

The answer to question (A) will allow me to properly setup projects in the second server that are consistent with those of the first. The answer to question (B) will allow bi-directional updates between the two non-networked servers when updates are needed to be shared/synchronized.

So far, migrating to GitLab has been a good thing for our groups. The ability to synchronize two non-networked servers is the last major item to resolve.

Thanks in advance for your help.