Jump to content

Tutorials and Options for Cloud/Remote Repositories?


Korindian

Recommended Posts

Hi,

 

I'm relatively new to version control systems, having briefly worked with Mercurial, Bitbucket and SourceTree. Since Bitbucket has size limits on its accounts now, I started looking into other solutions and found Plastic SCM. I really like the ease-of-use of the Plastic GUI... well done!

 

I'm currently developing games using Unity as a lone developer, but will soon be adding others to the team. I'm now in need of another place for a remote repository that can handle large sizes for game assets and code.

 

Here are my questions:

 

1) If I have a shared web-hosting account, would it be possible to install Plastic SCM on it? If so, are there any easy-to-follow tutorials on how to do this with username/password security?

 

2) Are there any good tutorials on how to set up a remote repository on a Google Cloud Compute Engine or Microsoft Azure services? I did see this article for setting up Plastic SCM with an Amazon EC2 instance, but saw another thread here indicating some people got stuck following it. Is there an official Plastic SCM tutorial?

 

3) I read in this post from 2013 that Codice is planning on offering some sort of solution themselves. Is this still happening, and is there a timeframe?

 

Basically, I'm looking for an idiot-proof guide on how to create a remote repository, as well as free or low-cost options for hosting it. It was easy to set up Mercurial with Bitbucket and SourceTree using the many guides available online. However, I'm not able to find the same types of resources for Plastic, and would very much appreciate being pointed in the right direction.

 

Thanks in advance.

Link to comment
Share on other sites

Hi Korindian,

 

1) Setting up Plastic is pretty easy, I have my own Plastic SCM server on a raspberry pi at home so you can do the same with any bigger machine.... If you have a shared web hosting machine you can use it to install Plastic and expose the 8087 or 8088 port.

2) We don't have any tutorial for Google cloud computer engine or Microsof Azure, neither for Azure. i do recommend you to go for a Amazon machine.

3) Not ready yet buy almost there!

 

If you have any question I'll be happy to assist you, maybe we can write an installation guide together documenting the steps.

Link to comment
Share on other sites

Hi manu,

 

Thanks for the reply.

 

Yes, it would be great to see an installation guide for how to get Plastic installed on a shared hosting account, expose the 8087 or 8088 port, and set up a username/password. Perhaps this thread could be it.

 

I'm using A2 hosting, and they use CentOS 6 on their shared hosting servers. They have MySQL and PostGreSQL databases.

 

I have the Plastic Client and Server already installed on my Windows 8.1 machine, and by following the tutorials on the Plastic SCM website, I feel comfortable using it locally with the default database.

 

What are the next steps I need to take to get Plastic installed on the server? Do I download one of the linux packages or do I need to use SSH access?

Link to comment
Share on other sites

Ok, using PuTTY on Windows, I accessed my server using SSH.

 

According to the instructions on the RHEL & CentOS tab I entered the first line:

 

$ wget http://www.plasticscm.com/plasticrepo/5.0/RHEL_6.3/plasticscm-5.0.repo

 

(I believe the "$" at the beginning is a typo and is supposed to be "#", correct?) which said "-jailshell: $: command not found"

 

So I tried:

 

wget http://www.plasticscm.com/plasticrepo/5.0/RHEL_6.3/plasticscm-5.0.repo

 

and I get an ERROR 404: Not Found. To ensure I didn't make any mistakes, I copy pasted from the instructions.

 

I can get up to the RHEL_6.3 directory just fine but the file isn't there. What am I doing wrong?

Link to comment
Share on other sites

For anybody in the future who follows this:

 

After entering the first command in SSH (using PuTTY on Windows):

 

wget http://www.plasticscm.com/plasticrepo/5.0/RHEL_6.3/plasticscm-5.0.repo

 

the file downloaded to my /home directory on my shared hosting account.

 

You must create the directory shown in the second command before you run the command, optherwise you get errors. In my case, using FileZilla I created the following directory:

 

/home/(MyHostingAccountName)/etc/yum.repos.d/

 

Then the second command shows that you need to enter the following:

 

cp plasticscm-5.0.repo /etc/yum.repos.d/       <--- but this didn't work because I needed to enter the full path. In my case, it was:

 

cp plasticscm-5.0.repo /home/(MyHostingAccountName)/etc/yum.repos.d

 

After this, the file copies over correctly. Then when I get to the next command:

 

yum install plasticscm-client plasticscm-server

 

I get the error:

 

CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum.conf

 

What do I do now? Honestly, I thought this was supposed to be easy... but it seems like this requires a good knowledge of servers to get it going on either an Amazon EC2 machine or a shared hosting account. And getting this going over the forum has already taken 2 days.

 

I really wish there were fool-proof step-by-step instructions, as this system seems so cool for game development. I think I may just use the PlasticSCM GUI with Git on Bitbucket and try to limit the project size (or even Visual Studio Online which offers unlimited sized repositories free), or just use the GUI with Git which is pre-installed on my shared hosting account. Or possibly wait an unknown amount of time for you guys to set-up your own cloud repo? I'm not seeing any providers online that host Plastic.

 

While awaiting a reply, I've also sent an email to my hosting provider asking if this is a limitation with shared hosting accounts.

Link to comment
Share on other sites

I didn't see that in the instructions, but I tried it and this is what happened:

 

sudo: unable to mkdir /var/db/sudo(MyAccountName): Read-only file system

(MyAccountName) is not in the sudoers file.  This incident will be reported.

 

 

Hehe I don't think I have that kind of access in a shared hosting environment. I'm not going to go down the shared hosting path anymore.

 

Is there a reason you guys recommend Amazon EC2 rather than an Azure server other than it being free for a year?

 

Which Linux distribution would you recommend for Plastic on an EC2 server?

 

Can you put together an official detailed guide for the recommended distribution at some point in the future?

 

Thanks.

Link to comment
Share on other sites

We are having a very good experience with Amazon EC2, the IO speed is great and very regular you always get the same speed. The management and usage is also great.

 

We use the Amazon EC2 machines for our load testing -> http://plasticscm.com/under-heavy-load/index.html and it's really easy to handle it.

 

While choosing your machine, it's better a good IO performance than a huge number of RAM GB....

 

Any UNIX flavor is fine... Take a look into the ones we supoprt with rpms as you will get the benefict of usign mono 3.0.3 instead the 2.6 deployed with the regular installer: https://www.plasticscm.com/plastic-for-linux/index.html

Link to comment
Share on other sites

  • 3 weeks later...

I know you recommended an Amazon EC2 machine above, but I'm evaluating installing Plastic SCM on an Azure Virtual Machine Free Trial since I'll be applying for BizSpark soon and will possibly get 3 years of Azure service ($150/month credits) for free.

 

My goal is to write a Plastic SCM with Azure tutorial guide for new indie game developers like myself. After much tinkering (being new to virtual machines and Windows Server), I was able to get Plastic SCM set up on a Windows Server 2012 R2 virtual machine with a SQLite backend. I've run into a snag though:

 

Using Sync Replication view, or even through the "Push this branch" option, I'm not able to connect successfully to the remote server. I think I may be entering the server and domain name incorrectly. Is this format correct:

 

MYSERVERNAME@MYDOMAINNAME.cloudapp.net:8087 

 

I've setup an endpoint with port 8087 for the virtual machine, but I keep getting this error when trying to connect:

 

"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host as failed to respond (and then the vm's IP address:8087)"

 

The virtual machine is confirmed running. If I try different ports, an error comes up right away, whereas the above error comes after the message, "Downloading data from repository server", so it looks like it's detecting an open port.

 

The above error happens even if I set both client and server configuration to Active Directory, LDAP, user/password, or local user on the virtual machine. On my own computer's client, it is set as local user, but even when I tried setting it to LDAP in a new profile under "Advanced replication options", with the vm set to LDAP or Active Directory, I'm still getting the same error.

 

I can't figure out where I made a mistake. I'd appreciate any help.

 

Thanks.

Link to comment
Share on other sites

Hi!

 

Thank you for your effort doing this, if you want we can schedule a meeting to take a look into the problem.

 

The "A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host as failed to respond (and then the vm's IP address:8087)" message is shown when the client is not able to reach the server, check closed ports... Windows firewall...

Link to comment
Share on other sites

It might be a lot easier to schedule a meeting.

 

I followed your advice and checked the Azure VM's Firewall settings. I created an inbound rule to allow port 8087.

 

Now when I try to do Sync Replication, it briefly flashes "Downloading data from repository server", and then it finishes only to show an empty white field. There should be a repository there, but it doesn't show up. At least there is no error now.

 

Just to clarify, what authentication should I set the Azure VM's (Windows Server 2012 R2) client and server configuration to? Active Directory, LDAP, user/password?

 

My own computer's configuration is set to local user. Do I need to change this as well?

Link to comment
Share on other sites

Hi!

 

If your local server is using the "Local Users" auth mode  you will need to create a "profile - http://plasticscm.com/documentation/gui/plastic-scm-version-control-gui-guide.shtml#TheProfilesTab" to work with the Plastic SCM server using LDAP/AD/UP.

 

First thing you need to check is if your local client can target the remote server, to do that perform the follosing command:

 

"cm lrep YourRemoteServer:YourRemotePortNumber"

 

for example:

 

"cm lrep amazon.ec2.amazonamachine.com:8087"

 

Don't go further until this command returns you the remote repositories.

 

I do recommend you to use "User and Password" authentication mode, it's the easier and faster to implement in both local and remote servers.

Link to comment
Share on other sites

Finally!

 

There were two problems.

 

First, I needed to set up both the remote server/client and my local server/client with the same user/password based security, like you mentioned above.

 

Second, I needed to remove the server name when connecting.

 

So instead of MYSERVERNAME@MYDOMAIN.cloudapp.net:8087, i just needed to put:

 

MYDOMAIN.cloudapp.net:8087, and my repository showed up. I was able to sync using the Sync replication view without any errors.

 

Thanks. I will post a link at some point to a comprehensive Azure VM tutorial.

Link to comment
Share on other sites

  • 2 weeks later...

Archived

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

×
×
  • Create New...