Jump to content
Matt

Migration from Mercurial, Cloud, Team questions

Recommended Posts

Hi, I'm evaluating a switch to Plastic SCM Cloud, from our current Mercurial+Largefiles setup.

My questions:

First, is the only way to go from hg+lf to convert to a normal-non largefiles repo, then use the hg fast export (here: https://github.com/frej/fast-export) to git, then git fast export to fast import in PlasticSCM? Is this reasonable to do on Plastic SCM Cloud?

Second, where are the Plastic SCM cloud servers hosted? We're a distributed team in Europe and having fast access is important (obviously it can't be perfect for everyone, but west coast USA for example wouldn't be good).

Third, is there a limit to the cloud repository size? Does the $7.45/mo stay constant even upwards of 1TB?

Fourth, this isn't obvious from the users page, does the Team license include the Jet backend? What happens if we go from 15 to 16 users? Do you automatically need to switch to the enterprise license?

Thanks!

Matt

Share this post


Link to post
Share on other sites

Hi,

- Plastic supports the fast-export format so if you are able to export the repo to git, then the jump to Plastic should be straight-forward. You can import the repo to Plastic via "cm fast-import".

You can directly import your fast-export package to a Plastic cloud repo. If the package is very big or the performance is not the best, you can import the package to a local Plastic repo first and then push it to the cloud.

- When you create a cloud organization you can choose the data center location that fits better for you. Our infrastructure is based on Azure. Plastic also supports a distributed workflow so can host your local repos and then push/pull to the cloud.

- There is no repo size limitation. Plastic is very good handling big repositories (including huge binary files). The cloud subscription prize also depends on the storage but I wouldn't say it's expensive:  https://www.plasticscm.com/cloud/pricing

-  Jet is default backend at the moment (also with the Team license). It has the best performance and we recommend it for all of our new users. If you may need more than 15 users, could you write to sales@codicesoftware.com ?
They will be happy to assist you with this specific scenario and explain you the different licensing options.

If something is not very clear, please let us know :)

Regards,
Carlos.

Share this post


Link to post
Share on other sites

Hi Matt,

Thank you for your interest in Plastic SCM. 

About the migration, our support team answered above.

About the rest of your questions: 

  1. Where are the Plastic SCM cloud servers hosted?  ---they are on Microsoft Azure; at setup time you may select the Datacenter you wish your data to be hosted. There are different options in Europe, of course, that will maximize performance
  2. Is there a limit to the cloud repository size? Does the $7.45/mo stay constant even upwards of 1TB?  ---there is no limit. If you plan to go above 500GB, we are open to discussing the pricing- As it stands the system' bills $7.45/ 50GB above 100GB. Although we say we charge by GB, the service includes communications (download and uploads) which costs are at par with storage capacity.
  3.  Does the Team license include the Jet backend? ---it does. 
  4. What happens if we go from 15 to 16 users? Do you automatically need to switch to the enterprise license? We offer a transition price for Team Edition customers growing beyond 15 users and less than 30 users, which costs less than the Enterprise Edition. Please, write us to sales@codicesoftware.como to obtain a binding offer.

I hope this helps. Does it make sense?

Francisco

 

Share this post


Link to post
Share on other sites

Ok, a few more questions :)

The repo / workspace model in Perforce speak would be closer to a depot / workspace model? So I could have one repo for the company, or for a project, and each user could have their own amount of workspaces per repo, correct? Is there a limit to workspaces per user? Does each workspace needs a full copy of the repo on disk? There isn't any symlinking/copy-on-write that may optimize space if I want 4-5 workspaces of the same repo on the same disk, but very small differences in each... That would be nice :)

What are the RAM requirements of the Team Server?

Thanks!

Share this post


Link to post
Share on other sites

Hi,

- That's correct. You can have as many local workspaces pointing to the same repo. Please check the following link:

https://www.plasticscm.com/branch-per-task-guide/gui/whats-a-workspace

- There is no limitation in the number of workspaces. But why would you need multiple workspaces for the same repo in the same client? It's not a very common scenario.

- If you don't want to download all the files to your local wrkspace, you can use Gluon (by default it uses partial workspace) or a "cloaked.conf" in a regular workspace:

https://www.plasticscm.com/gluon

- Server requirements: It would be great having 4 cores, 20GB RAM, SSD disks.

Please let us know if you have more questions.

Regards,

Carlos.

Share this post


Link to post
Share on other sites
3 hours ago, calbzam said:

But why would you need multiple workspaces for the same repo in the same client?

This is probably due to the fact my head is operating in a different way. I'm working on a Unity game for example, and will test things on Xbox and PC at the same time. To deploy to Xbox I need to reimport the whole project, etc. Disk space is cheaper than time, so I just have multiple versions of the project running simultaneously, even though history is shared (and I may not even branch commits if they are fixing overall project things I happen to find).

There might be better ways of doing this in the long run, but for now its good to know its at least supported :)

OK, last question for real! Is the server as stable on Linux as on Windows? I don't have much (re: any) running production C# services via Mono, and am concerned about their stability. I'd rather not spin up a Windows box to act as a server if possible.

Thanks again,

Matt

Share this post


Link to post
Share on other sites

Hi Matt,

I'm going to take the opportunity to pimp Plastic Cloud a bit, because I think it's awesome :)

 

We are building this game with Unity and Plastic Cloud: https://playbatalj.com/

We are 15 developers in one office location. 1GBit connection to the Internet, wiring in the office happens to be 100MBit ethernet though.

A main branch checkout (ie, just the workspace - not the metadata and older file revisions) is approx 7GB and 29000 files.

 

We use Plastic Cloud instead of Plastic because we don't like to deal with backups and we are happy with the performance that we get. I used to have local repos on my machine and push/pull between my machine and Plastic Cloud, but stopped doing that a couple of months ago because 1) I didn't want repo history to eat my SSD space, 2) I didn't know how to use the "nodata replica" thing effectively from the GUI at that time and 3) I never noticed a significant speed difference anyway :)

The biggest things we miss with Plastic Cloud compared to Plastic Server are lack of webhooks and lack of web client. We get by OK without them however, less ops work is worth it to us.

Our CI system is a Jenkins deployment in Google Cloud. The most frequent builds pull Plastic Cloud for changes every 2 minutes. Since these builds are incremental, the incremental checkout is typically <30 secs.

We have trained our entire team - bar 1 person - to work with task based branches using the full GUI client. Over all we are happy with this aspect of it.

 

I often work with 2 workspaces for the same repo, 1 for regular dev, 1 for jumping around when helping others / hotfixes / merging between branches.

 

Share this post


Link to post
Share on other sites

Hi Mikael,

I appreciate the information. Cloud would be the way I'd lean in any case, since like you say, maintaining backups is already a pain in the ass, and not free.

However, for us we will not switch (due to cost, will explain below). For anyone else in our situation, the experiment worked: I did try out Plastic with this path:

1) hg clone repo/path --all-largefiles (get a repo copy that has every single file)

2) hg lfconvert oldrepo newrepo (get a vanilla mercurial repo with all the big files)

3) Use the fast-export script linked above to generate a git repo

4) Use git fast-export to generate a binary blob (for us it was 72GB)

5) Use plastic fast import to import it

It generally worked, however every tag got mapped to a branch (unclear if that happened in Git or only in Plastic, probably it already happened in Git since Git doesn't have tags like hg), and we had one filename with a unicode character that broke Plastic (it would fail on syncing that one file, not a big deal it was only a test, I fixed the name in hg again so in the future it should work unless we need to go back in time with that file), and lastly there were empty directories for every directory we ever had deleted, which was funny but it just took one script to delete empty directories and then do one commit to remove them. After that a diff of the Plastic workspace against the Mercurial repo showed no difference: awesome.

My brief time with Plastic GUI was wonderful, it was fast. That is why I want to leave Mercurial: it is functional, but slow (also code quality in TortoiseHg is declining, probably Mercurial will be unusable one day, which is terrible since it is so good functionality-wise).

However, ultimately, the cost doesn't work for us. We've been working on the game for 2-3 years, we make no money until we ship (hopefully!) and have no investment, so I realize we're not the target audience with the current pricing scheme. I'd switch us to p4 since its free for 5 people, but... its p4... so no :D Spending $62(6users+16-100GB) a month on repo hosting is a drop in the bucket if we had income! So when we ship, and hopefully it will make enough to at least fund our next work, we'll come knocking on the door ❤️ 

Thanks to everyone, I'll probably come back to this thread in year's time when I need to migrate hehe.

Matt

Share this post


Link to post
Share on other sites

Hey @Matt, thank you very much for sharing with us the migration steps! We really appreciate it.

One question, would you switch to Plastic if we offer you free licenses for an on-premise server? I know how P4 works and I think your daily work would be better and faster if you use Plastic instead.

Then, once you make money from your game (hopefully soon!!! :)) you can finally purchase Plastic.

What do you think?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×