Jump to content

Git Submodules (with Github) with Plastic Cloud


Alexandre Fiset

Recommended Posts

Hi!

We are making games and would like to have Github repos in sync and inside our Plastic Cloud repo:

Example:

-our_repo // on Plastic Cloud
--Assets
---Addons
----Postprocessing // that is synchronized with Unity Technologies repo on github

Looking at the documentation and dozens of forums and blog posts, I'm still unable to get it working:

  • Using Sync With Git on a branch throws an error; The changeset (...) could not be imported (...) An implicit transaction is not supported to write the metadata (...)
  • Creating an xlink using a GitHub server doesn't work; the server spec is not correct

I feel like a noob, but is there any straightforward way to do this?

We would really love to have opensource projects hosted on github in sync with our project.

Cheers,

Link to comment
Share on other sites

Hello @Alexandre Fiset,

I'm afraid the cloud is not having the GitSync feature Enabled.

But you can still get what you want by running the GitSync from a different server. You can do the following:

1) Your "our_repo" cloud can still have the "Postprocessing" xlink to the "Postprocessing" cloud repo.

2) You'll have an additional Plastic SCM repo where you will pull from the Cloud, so you will have local "our_repo" and "Postprocessing" repositories.

3) Using the local repositories you can sync from Unity repo on GitHub ysing the GitSync feature.

4) You can push the result back to the cloud, from your local repos to the Cloud ones.

You can even automatize it to make it on demand.

Hope it helps!

 

Link to comment
Share on other sites

Thanks @manu!

This would work in a small project, but our last one got to ~100 gb (repo ~350gb) and we anticipate the new one will reach that level at some point... I won't have all team members keep a local copy of the whole thing as it's overkill.

So I guess I'll manually merge for now and look for an alternative to Plastic Cloud for the future. 

It's a bit sad that the Cloud version doesn't support GitSync and proxy servers. The more I use it the less scalable I think it is. 

Cheers!

Link to comment
Share on other sites

Hi @Alexandre Fiset notice you don't need to force everybody to have a local copy, actually nobody needs it.

You can setup a machine to have a local copy of the Cloud repo in change of performing the git sync and pushing the result to the cloud, then all the developers will get the benedict of it (real file history) without having to switch to distributed, they are free to work centralized.

On 16/2/2018 at 11:34 PM, Alexandre Fiset said:

It's a bit sad that the Cloud version doesn't support GitSync and proxy servers. The more I use it the less scalable I think it is. 

Yes, we are looking forward to have a Proxy server compatible with the cloud, keep tuned.

Link to comment
Share on other sites

  • 2 weeks later...
On 19/02/2018 at 5:25 AM, manu said:

Yes, we are looking forward to have a Proxy server compatible with the cloud, keep tuned.

Well that will make it much more scalable ;p

I meant that I dislike the fact that the cloud version isn't the same as hosting my own (in the cloud). This is also true with JIRA and other software and it is a bit sad because otherwise the business model is really convenient.

Link to comment
Share on other sites

  • 4 weeks later...

I am looking at something similar, but on a smaller scale: Unity project, ~15 devs, workspace at ~4.5GB, core codebase is in Plastic (Cloud) but we want to pull in GitHub repos as submodules/xlinks.

Most developers on the team will just pull down the whole repository + sub-repos and proceed to work in the main repository. A small number of developers will occasionally update the submodules/xlink references to newer versions or do real work within the sub-repos.

The current GitSync feature requires every developer to make local changes on his/her workstation, plus use local Plastic servers.  Both these are inconvenient to us. It is feasible (but clunkier than we would like) to have the developers who modify/update the Git repos do local changes & use local Plastic servers.

 

Our current intended workflow is thus:

For each GitHub repository with an URL like 'https://github.com/<orgname>/<reponame>', we create a mirror repository in Plastic Cloud, named 'GitHub.<orgname>.<reponame>'. Programmers who want to propagate updates from GitHub to Plastic Cloud will use GitSync on their local Plastic server to replicate changes from GitHub to their local Plastic server, and then they push the updates to 'GitHub.<orgname>.<reponame>' repo in Plastic Cloud.

The main project contains xlinks to the 'GitHub.<orgname>.<reponame>' projects. Most developers on the team will fetch the main repo + xlinks straight from Plastic Cloud and never notice the GitSync usage.

 

Still, it would be neater if we did not need to use the intermediate 'GitHub.<orgname>.<reponame>' projects.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...