Jump to content
Eugeny

Git Fetch/Pull equivalent

Recommended Posts

I'm new to Plastic.

 

I just installed PlasticSCM server on our work server.

Installed PlasticSCM client on my computer and connected it to remote server.

Created new repo and made some changes to it.

When i checkin, my changes goes straight to remote server. And i expext, commit -> push workflow like in GIT.

 

PlasticSCM supports both central and distributed workflows (that from docs). But i cann't find how to setup simple distributed workflow and i cann't find description in documentation.

I used to SourceTree/Bitbucket combination. I just checkout from central repository and GIT automatically creates local repo and working directory. Push button are just right to Commit button.

What is the simpliest way to do the same in PlasticSCM?

 

Share this post


Link to post
Share on other sites

Hi Eugeny,

 

Thanks for giving us a chance to be your version control :-)

 

Ok, let's go to your question: in Plastic you can work fully distributed, like Git, but you DO need a local server installed. Don't panic. It is a super light server that will eat only like 100MB RAM at most, only to serve you, listening locally.

 

Then, how do you work distributed?

* If you work connected to localhost:8087 (port configurable), you are in local. Then you create local repos, workspaces to the local repos, checkin locally, then push/pull to the remote.

* If you work connected to the remote central server (which can happen just in a different workspace), you do direct checkin.

 

Let me know if it is now clear for you. I mean, it is all about having a local server. It installs in seconds and you won't have to worry about it. And you don't need sql server or anything. It defaults to our storage called Jet, which is by far the fastest :)

 

pablo

 

 

Share this post


Link to post
Share on other sites

Hi, psantosl

 

Yes, i understand that much. I dont understand, what steps i need to do to get remote repository that i already created to my local server, so that i can create workspace from local repo.

 

I read that tutorial

https://www.plasticscm.com/documentation/distributed/plastic-scm-version-control-distributed-guide.shtml

 

As i understand, i can Pull or Push only a single brunch? And every time i will need to fill Server and Repo? 

If i want to syncronize whole repository, then my only option is to setup sync view?

 

It seems too complicated. I need to explain this to all my co-workers. Instead of just clicking checkout in SourceTree, they would need to study how DVCS actually works and manually perform setup for each repository they would work with. Gluon is one of things that give the idea to switch to PlasticSCM, but we have some people just in meddle between programmers and artists, who need brunching and have no idea about DVCS.

 

I think, they can work in centrallized manner. But it's wasteful not to utilize pros of DVCS (fast brunch switching, ability to fetch data from server and work on current brunch, work offline).

 

It would be great to have:

1) Tutorial dedicated to centralized workflow with local server. Without all complications about DVCS, replication and so on... Just that you need first checkin, then pull. 

2) Option on Check Out  from remote repository to automatically:

- Create repository on local server.

- Syncronize it with remote repo.

- Create work space from local repository.

- Add sync view and all that needed, so user can fetch or push in single click.

 

In general, i find that after GIT it is very difficult to start with PlasticSCM. If i work with GIT in centrallized manner - i don't need to know about DVCS at all, but at the same time i get all benefits from working with DVCS. And in Plastic, in order to get benefits of DVCS i need to learn how DVCS actually work.

Share this post


Link to post
Share on other sites

Hi Eugeny,

First, thanks for the suggestions. It is very good to get a heads up reminding how we can do things better. So, thank you for that.

Now, let's see if I can help:

 

1) Artists: in our experience they prefer to work centralized and using locking. Forget about push/pull, simply checkin. If that's your case, then Gluon directly connected to the central server is what they need. No need to setup local repos or anything.

 

2) Replicate all branches. Yes, you should use the "sync view" for that. But there is a shortcut to create sync views superfast:

image.png.8b9e79558d5da521a6e07158dfeaab64.png

Just right click on a repo, and you will create the sync view super fast.

 

Now, one remark: replicating "all branches" is very "git way of thinking" because Git needs to pull the entire history backwards. This is not mandatory (not even good) in Plastic. You can replicate one single branch, forget about the rest of the history, and have a much lighter clone. What I mean by that? I always work distributed, but I don't replicate/clone all the branches on our central server, just the ones I need to work, normally just the ones I'm on (created locally most of the time) + main.

 

To wrap up:

* Artists are normally happier working centralized.

* Developers prefer to work distributed.

* You can safely combine both in Plastic, no problem.

 

Finally: we offer a FREE 1-hour session to anyone interested in learning more about Plastic, so if you feel like talking to us directly so we can help you starting up, and of course take feedback from your suggestions to add them to the roadmap, sign up here: https://www.plasticscm.com/download/freetraining

 

Thanks!

 

pablo

Share this post


Link to post
Share on other sites

Thank you for detailed answers!

 

2) Creating Sync View from context menu indeed are pretty easy. But it complicates when i start using Xlink.

 

I have several problems with local users.

 

Local network

- I connect to remote server using TCP with no problems

- Also i connect directly to remote server with my User/Pasword with no problem.

Trying to setup destributed workflow

- When i use Local Name as autentication in my local repo - all replication works fine. But i get name of my local user in commints and i want to use my work user name, that are created in central PlasticSCM server.

- When i change local server autentication to User/Password - i get license error

2018_00_30_2.jpg.e8440f928b26f95b8deaafc877a5f635.jpg

 

Remote computer

- Connects to server directly using SSL with no problem

Trying to setup destributed workflow

- Error while trying to sync repos. In local server User/Password autentication was used. We tryed to set all permissions as in documentation, with no luck:

https://www.plasticscm.com/documentation/security/plastic-scm-version-control-security-guide.shtml#Howtosetupanadministratoruser

ab4152d594c2f804a0d674d4833a3cde.png.4c00fb93cfc801799f770d7e6f278995.png

 

5 hours ago, psantosl said:

I always work distributed, but I don't replicate/clone all the branches on our central server, just the ones I need to work, normally just the ones I'm on (created locally most of the time) + main.

It's very nice feature. It will work for most people in my team. 

In my case - i often need to switch brunches to review others people work. It would be nice to have a certain slice of branches downloaded automatically, changed in last XX days for example. But i don't mind downloading all repository )

Share this post


Link to post
Share on other sites

Hi again,

It seems we are not making it easy for you :)

 

License thing: ok, it seems user "Jeck" is inactive in server "192.168.0.200:8087". You can run "cm li --server=192.168.0.200:8087" and check if Jeck is active there, if not, you must activate him. It would only be deactivated if you are beyond the user limit on the server, but maybe some users are not active anymore.

SSL thing: I bet the problem is that you are not the "owner" of the localhost:8087. Weird because it should happen by default. Anyway: go to your local repo list, right click, repository server permissions, make sure you are the OWNER. Then you'll be the local admin.

Automatic replication: well, if you don't want to periodically sync using the sync view, you can always do some scripting to replicate every few minutes or half an hour. I see how important this is and we added to the roadmap the feature of keeping servers in sync... I mean, I just feel bad we don't have it yet :-S

pablo

Share this post


Link to post
Share on other sites

License thing:

- 3 users activated out of 5 and Jeck is active.

- Weird thing, i found there my local user. I made few commits with it, when my local repo was set to "Local name".

- I can connect to repo with user Jeck using centrallized workflow.

- I just managed to connect with user Jeck from home, using destributed workflow (fix with SSL worked). Problem remained only at work, whem connecting using TCP.

Problem appeared only when i changed local repo from "Local name" to "User/Password" and set the same user/password as in central repo.

I will try to reinstall in mondey. Probably something went wrong during my experiments )

 

SSL thing:

Yes, this fixed problem! Owner was "ALL USERS".

 

Automatic replication:

Sorry for my english, it's not what i ment :). I perfectly ok with manual push/pull using sync view. I ment, that instead of manually selecting branch to replicate - it would be nice if branches could be selected automatically by some filter - changed in last X days for example.

Share this post


Link to post
Share on other sites

Hi Eugeny,

Reach us at support on Monday if you need someone to connect to you remotely and help you.

Glad to see you figured out most of the solutions... I'm afraid I wasn't of great help, but good to see you're an expert now ;-)

 

Automatic replica: what I do is sort the branches, so the ones with recent changes show first, then I select a few and pull. Does it help? :-)

 

Thanks,

 

pablo

Share this post


Link to post
Share on other sites

There are problem with license on my local server. There are only one licensed user and it already was taken by local user name when authentication was set to "Local name".

When i changed it to "user/password" - second user was added and he is Inactive.

It is very strange, that server with "Local Host only" connections can have problems with multiple user license. Only way to check licenses - are command line. 

 

      * User-license information:

K                         ACTIVE
Jeck                      INACTIVE (Not licensed)

---------------------------------------
Licensed to: Plastic SCM trial license
Expiration date: 3/29/2018 6:50:13 PM
Edition: team
Total licensed users: 1
Total activated users: 1
Total available users: 0
---------------------------------------
 

Conn't deactivate user that can't actualy use this server :)

C:\Users\K>cm du K
The user K does not exist

Maybe you have to use the flag "--nosolveuser" to deactivate a user that doesn't exist in the authentication system anymore.

 

Don't know why i'm not administrator of my own local server )

C:\Users\K>cm du K --nosolveuser
You don't have permissions to deactivate user K. You need to be repository server administrator in order to be allowed to complete this operation.

 

And all this just because i didn't change default authentication method right away. Something terribly wrong here.

Ok, i'll just reinstal...

 

Share this post


Link to post
Share on other sites

I have license question.

For my purpose i will need Team License and i need to install it in our main server.

Do i need to instal the same license for each user or they need to register for Personal Edition?

Share this post


Link to post
Share on other sites
On 4/2/2018 at 12:31 PM, Eugeny said:

There are problem with license on my local server. There are only one licensed user and it already was taken by local user name when authentication was set to "Local name".

When i changed it to "user/password" - second user was added and he is Inactive.

Yes, the problem is the "local" user is the only once activated and you only have license room for a single user... deadlock. We can solve that from support if you want.

If you have the problem sorted by starting from scratch remember to setup the right authentication mode and get your user activated and set it as the Plastic SCM root user as well. Check this for further details: https://www.plasticscm.com/documentation/security/plastic-scm-version-control-security-guide.shtml#Howtosetupanadministratoruser

On 4/2/2018 at 12:47 PM, Eugeny said:

For my purpose i will need Team License and i need to install it in our main server.

Do i need to instal the same license for each user or they need to register for Personal Edition?

Distributed users can use a solo license that we can generate to you, the central server will need to have a license that will be sum of the central and distributed user count.

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

×