Checkout remote solution

I have installed the sample solutions on a remote server. I can upload a new solution to the server. I can use the solutions with the smart client. Now I would like to load the new solution I created into a different computer (work) than the original development computer (home). I start the developer and try to checkout the remote solution. All I get is an “error getting repository from host”. I’m using port 8080 (xx.xxx.xxx.xxx:8080). I’ve tried port :1099 because I’ve seen that somewhere, but I still can’t get the solution into my workspace. I’ll bet there’s a trick?

Thanks in advance
Bill Belanger

hi Bill,

first, make sure you have “servoy.application_server.startRepositoryAsTeamProvider” set to true, in Servoy’s settings;
also, you will need to have a user created on the application server in order to be able to connect to servoy’s team provider;
if you do not change the “servoy.rmiStartPort” in Servoy’s network settings, then it is enough to enter the server ip (if
changed then you need to specify also the port in the address, like :port ) - make sure the server:port is accesible from you location :
a “telnet server_ip port” should answer this

regards,
Gabi

Thanks so much for the reply. I hadn’t made a user. After creating one, I was able to connect.

Bill Belanger

Almost there! When I try to checkout the solution, I get an error message that the solution already exists in the workspace. I found it (on my computer) and deleted it from the folder, but still get the error. If it exists somewhere else, I can’t find it. Is it possible for me to overwrite the solution if that’s what I want? I’m trying to work on the same solution from two different places with the solution being on the remote server.
[attachment=0]error.jpg[/attachment]

So if my goal is to work from two different places, am I approaching this properly? Maybe someone can give me a heads up on sharing. I’ve read the docs, but not sure sharing is what I need.

Thanks
Bill Belanger

Read more on sharing. I’m able to commit, although I get an error saying it wasn’t able to save all changes, but the changes are made.

As far as update, I’m getting

application server does not accept client connections

Any suggestions on that?

Bill Belanger

make sure “servoy.application_server.startRepositoryAsTeamProvider” is set to “true” on the server that is used as team provider

BillB:
Read more on sharing. I’m able to commit, although I get an error saying it wasn’t able to save all changes, but the changes are made.

As far as update, I’m getting

application server does not accept client connections

Any suggestions on that?

Bill Belanger

Yes Gabi,
“servoy.application_server.startRepositoryAsTeamProvider” is set to true.
If that were not true, I think I would not be able to commit changes.

V4.1.1
I delete the solution from the server. I want to start fresh.
I export the solution from my computer.
I import to the server.
I make a change to the solution on my computer. Save
I share.
I commit the change to the server and I get
“Could not put all changes due to conflicts, resolve conflicts first.”
Remember, this is an exact copy.
Now I remove share. Shutdown developer (because the share stars don’t go away unless I do)
Re start developer.
Make a change to a form (remove a field) Save
Share project
Update
The changes to my form are made, but I get,
“Could not get all changes due to conflicts, resolve conflicts first.”

So although everything seems to work, my only issue is the error messages about the conflicts.

Is this something I should report as a bug?

Thanks
Bill Belanger

V4.1.1
I delete the solution from the server. I want to start fresh.
I export the solution from my computer.
I import to the server.
I make a change to the solution on my computer. Save
I share.
I commit the change to the server and I get
“Could not put all changes due to conflicts, resolve conflicts first.”
Remember, this is an exact copy.

you got conflicts because when you commit, the team provider saw that there is
already files with the same name in the repository, that was not commited by you (you imported it, not commited,
it could be also possible that it has been commited by someone else so it is conflicting with your files)

to start fresh you should import the solution to the server & checkout or does not import to server and share, followed by a commit

Thanks Gabi,
I think what you’re saying is that I’m working with two versions of the same project.
So what I should do is import the project to the server.
Delete the project from my computer.
Checkout the solution from the server to work on it?

That makes sense because that’s the way we do it in Filemaker. The solution remains on the server, not on the user’s computer.
But what would the “update” function do? I thought it’s purpose was to save the solution to your desktop from the server.

The problem with that is that doesn’t the solution start on a local computer before it gets imported to the server?

I guess this is not quite clear yet what the process is from the beginning to sharing.

You said;
“to start fresh you should import the solution to the server & checkout or does not import to server and share, followed by a commit”

So I’ve imported to the server, I’m sorry I don’t quite understand the rest of the sentence. Could you explain a little bit more please?

Thanks,

Bill Belanger

I think what you’re saying is that I’m working with two versions of the same project.
So what I should do is import the project to the server.
Delete the project from my computer.
Checkout the solution from the server to work on it?

yes, this is the way you should do

The problem with that is that doesn’t the solution start on a local computer before it gets imported to the server?

when “servoy.application_server.startRepositoryAsTeamProvider” is set to “true” then the server is both application
server & source control server, so if you import a project into the application server it will be available to the source control,
and, also, if a project is shared + commited to the server, it will be available to the application server

this is why if you import, then there is no need to share + commit, just checkout;
and if you did not import, then to have the project under source control, you should share + commit

Right now, I have imported the solution. I have team provider set to “True”

If I delete the solution from my computer and checkout the solution on the server, it downloads a copy to my computer.
After that, if I try to checkout the solution, it tells me it already exists in my workspace.

So, after you checkout the solution for the first time, sharing is the only option available. If you try to share, it tells you that the solution already exists. If you tell it to share anyway then try to commit, it will not save the changes.

If I delete the solution from the server and set team provider to false, When I try to share from my computer, the server will not accept client connections.

So Gabi,to take this one step at a time, after I checkout the solution, how do I save the changes back to the server?

Thanks,

Bill Belanger

Right now, I have imported the solution. I have team provider set to “True”

If I delete the solution from my computer and checkout the solution on the server, it downloads a copy to my computer.
After that, if I try to checkout the solution, it tells me it already exists in my workspace.

when a project is checked out, a project folder is created in the workspace, with the name of the project;
another checkout of a project with the same name will fail, as there is already a project folder created;
if you want another checkout (maybe from another server) of the same project, you should use an another
workspace for that

So, after you checkout the solution for the first time, sharing is the only option available. If you try to share, it tells you that the solution already exists. If you tell it to share anyway then try to commit, it will not save the changes.

when a project is checked out, it will be set as bounded to the server it came from; in order to share that project with maybe another server,
you should first unbound it (remove share) and after that you can share it with whatever servoy server, that act also as team provider
if you share the project to a server that already has the project, all the files from your local project that are also on the server, will be considered
as conflicting, and you should merge them manually, so you got to the state when they are all in synch, and after that you can do commits

If I delete the solution from the server and set team provider to false, When I try to share from my computer, the server will not accept client connections.

that means you have stopped the server to behave as team provider, source control client connections will be refused

as a conclusion you have 2 options to work with the same project from different servers :

  1. use different workspaces for the projects;
  2. use the same workspace, and switching between servers by unsharing - sharing and then merging

Thanks so much for your time Gabi. I feel like I’m close here.
I am one developer.
I have one server.
I do development from two different computers, one at home, the other at work.

With Filemaker I am able to log on to the server from either place and make changes.

Ahah…
So what I really want to do is import a new version into Servoy Server! Not make changes to the active solution. That’s what’s better about Servoy.

Two more questions now.

  1. How do I purge old releases? Or do I even bother?
  2. In Servoy admin, what does the “New Release” button do? I can’t find anything about it in the help or Servoy Admin Or Developer’s guide.

Thanks so much for your time Gabi. I feel like I’m close here.
I am one developer.
I have one server.
I do development from two different computers, one at home, the other at work.

With Filemaker I am able to log on to the server from either place and make changes.

this can be done with servoy too : do a checkout from server_ip at the home computer, then also do a checkout from the same server_ip at work
maybe you should check this for more info about team support in servoy : viewtopic.php?f=38&t=11054

Ahah…
So what I really want to do is import a new version into Servoy Server! Not make changes to the active solution. That’s what’s better about Servoy.

Two more questions now.

  1. How do I purge old releases? Or do I even bother?

you can’t

  1. In Servoy admin, what does the “New Release” button do? I can’t find anything about it in the help or Servoy Admin Or Developer’s guide.

create a new release from the active project

Gabi,
How is the new release any different from the active release?

Bill Belanger

Hi Bill,

When you import a solution into your repository this will be a new release. This way you could always rollback to an older release when the new release caused troubles.
Now since 4.x we can use the Servoy Server also as team server for team development. You can checkout a solution and commit back the changes. BUT the changes will always be applied to the last release. Unlike how this works with a SCM like SVN/CVS/GIT where each commit is essentially a ‘release’.
So to have some control over this in the Servoy team server you can now say “from here on it’s a new release”.
By the way you already could do this in the pre-4.x versions in the developer (repository window). But since 4.x you can now do this too in the admin pages.

Hope this explains things.

Thanks Robert. That explains everything very well.

If you don’t mind answering one more question,

I have a new install of developer on my computer. I checkout the solution from the server. I get errors and warnings that the dataproviders are not available. And of course I can’t add any fields to my forms. This is because the tables on the server are not the same as those that I have on my computer. Not sure how to match that up.

Also, if I try to checkout a local solution it says the application server is not accepting client connections. This certainly was not the case before I tried checking out a remote solution. I used to be able to checkout all the examples. I must need to set the team provider to true on my own computer? I thought that was the install default.

So…If I start from a fresh install, I cannot share anything.
Once I checkout a remote solution, the share seems to be initiated automatically, but the tables in the remote repository are not “seen” from the local workstation. The solution is imported to my workspace, but without the dataproviders. So how do I work on a remote solution? I really thought I had it there for awhile.

Bill Belanger

Bill Belanger

Hi Bill,

BillB:
I have a new install of developer on my computer. I checkout the solution from the server. I get errors and warnings that the dataproviders are not available. And of course I can’t add any fields to my forms. This is because the tables on the server are not the same as those that I have on my computer. Not sure how to match that up.

You should be able to generate the tables via the Quick Fix option in the Problems view. It should be one of the possible options. Just select the specific error/warning and hit right-click and select Quick Fix. This will allow you to fix this per table.
Another way of fixing this is to right-click on the database connection and select the “Synchronize with DB Server information”.
This should recreate ALL the tables from the DB information you checked out from the team server.

Just keep in mind these functions also can drop tables and such so when you start doing these things you might want to consider making a backup of the database you want to refractor.

BillB:
Also, if I try to checkout a local solution it says the application server is not accepting client connections. This certainly was not the case before I tried checking out a remote solution. I used to be able to checkout all the examples. I must need to set the team provider to true on my own computer? I thought that was the install default.

First of all, when you develop on your own you don’t really need to use the team server. You can do everything from your local workspace. But if you do want to use the team server then yes, you need to enable that yourself.

BillB:
So…If I start from a fresh install, I cannot share anything.
Once I checkout a remote solution, the share seems to be initiated automatically, but the tables in the remote repository are not “seen” from the local workstation. The solution is imported to my workspace, but without the dataproviders. So how do I work on a remote solution? I really thought I had it there for awhile.

Just like when you import a solution into the server (via the admin-pages) you should setup a database connection before you checkout. Although you can add it after the fact but adding it manually is needed nevertheless.
But unlike when you import a solution Servoy won’t automatically create tables/columns for you when you checkout a solution. You need to use the approach I explained above.

Hope this helps.

Thanks Robert, Unfortunately I’m a little confused with all the information.

What approach would you suggest for a person who wants to have the solution on a remote server, yet make changes to it from two different places (home/work)?

Thanks in advance,
Bill Belanger

Hi Bill,

Well there are a couple of setups. I don’t know what you are using.
You can have a dedicated development team server with Sybase DB’s and a seperate workstation where you develop on.
Now this workstation can connect to the same database server as the team server is doing (data, not repository) or it can have connections to a local Sybase instance.
At home you have a workstation that probably needs to connect to a local Sybase instance. So you will have ‘copies’ the same database in at least 2 locations.
I say ‘copies’ because you might alter the schema on your development machine and need to push those changes back to the development server and vice-versa.

So you need to keep your (data) database in sync no matter what unless you can connect all locations to the same database instance.

Does this make more sense ?