Servoy 4 Commit Issue

I’m happily sitting here learning all the new fun in 4.0.

I went to commit my solution and get this error:

java.lang.Exception: Could not put all changes due to conflicts, resolve conflicts first.
at com.servoy.eclipse.team.ui.actions.CommitOperation.execute(CommitOperation.java:60)
at com.servoy.eclipse.team.ui.actions.SolutionOperation.execute(SolutionOperation.java:71)
at org.eclipse.team.ui.synchronize.ModelOperation.run(ModelOperation.java:106)
at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:144)
at org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:72)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Where do I find these conflicts? I have enough conflicts in my life already! :)

Chico

Hi Chico,

Where do I find these conflicts? I have enough conflicts in my life already! :)

Don’t we all!:slight_smile:

But this error is actually a good thing. Servoy is giving you a chance to review these changes individually.
You can do this by ‘Synchronizing’ your solution. Right-click the active solution node and select ‘Synchronize’ from the ‘team’ sub menu.
You’ll enter a new perspective that will allow you to identify the conflicts and compare local and team repository versions of the resource in question.

Hope this helps.

Hi Chico,

You might want to take a peek at the at the PDF ‘How to Use Team Support in Servoy 4.0 Pre-Release’ (see bottom of that page).

Hope this helps.

I see! Thanks guys.

Now a new perspective to attempt to learn. :)

Chico

I’m am quickly going bald as I pull my hair out with this Synchronize perspective.

Here’s the scoop… I have 2 computers connecting to my team server. (one of the computers is the dev machine and the team server)

So I make a change by adding a new global method to workstation 1.

I commit it

I then do synchronize on the same workstation. The sync perspective tells me that there is a conflict and that my local method is different than my remote (repository) method.

The thing is, the locol machine has my new method in it but the remote machine does not EVEN though I had run Commit from the Workstation.

Finally, I think, well, I’ll just copy from left to right (from local file to remote file) but the copy from left to right is grayed out.

What am I missing?

Commit puts your local file system changes back in the repository.

Update pulls changes in the repository to your local file system.

Synchronize compares and allows you to merge differences between the two.

Does that help make sense of the process?

greg.

That makes sense… but something still isn’t right.

So, I make a new method in my globals.js

I try to commit… get an error that I have conflicts

I then synchronize and the synchronize perspective comes up.

I look at the conflict (see picture)

My new method is the problem… and it won’t let me commit the new addition to the remote site.

So I tried deleting the new method from local. Then committed. Everything is cool.

Then I added it again.

Tried to commit… same thing happens.

It’s like it won’t let my changes commit to the repository.

Any ideas?

Did you do an Update?

Try doing an update, then make your changes locally and try another commit.

g.

Ok… so yes, I tried again and did an update and I was finally able to commit with the changes I wanted.

But life isn’t so grand. I then go to my other computer, fire it up, connect to the solution like the directions say and it still has the old method … without the change.

I am going to change professions now. :P

Chico

I’m having the same kinds of problems.

I have received an updated export from another developer, I don’t have a standalone repository server machine, but am using my laptop as the repository. I have imported the updated .servoy file, and it seems to have successfully imported and activated, however if I try to run the solution, I only see my old version, not the changes that have been made. There must be an issue with the syncing / repository / team sharing thing.

So, when I try to synchronise, I get the synchronise view with servoy_localhost_resources and tapelibrary (my solution), both have an icon that looks a little like two red arrows pointing away from each other with a white asterisk on them. If I right click and choose synchronise on either of them, apparently nothing happens. At the very bottom of the perspective I have the two arrow thing with 359 next to it (359 conflicts??? I don’t know what it means.) There is also a small grey arrow pointing to the left with 0 and to the right with 5. If I expand tapelibrary for example I get a list of about 25 folders with things like forms, forms/attachments, forms/contacts etc. Each of these folders has the red two arrow asterisk deal. If I right click one of them and synchronise - apparently nothing happens. I then expand one of these folders and see another 25 or 30 items, each with the red arrow deal, but now with a white plus in the middle. If I right click and synchronise, apparently nothing happens. I then right click and go to open in compare editor. The two sides are apparently identical… The red arrows remain.

I then right click and merge, and get the error: “Some conflicting changes cannot be merged automatically. These changes will have to be merged manually”

How does one manually merge conflicts, and do I have to do it 359 times??? If so, the process is unusable… What am I doing wrong?? I tried to do an overwrite yesterday and that resulted in the forms item in my solution explorer disappearing on one solution, and the other solution I’m working on disappear altogether (the solution was there but there was NOTHING in the tree below it, no forms, no methods, nothing apart from modules (which it doesn’t have)) I had to resurrect it from a backup.

This has been a continuous issue with the team sharing for me. I don’t know what I’m doing wrong. The only documentation I can find for it is the team sharing pdf, but that doesn’t explain what to do when things go wrong, or what wrong even is. I don’t know if this is something I’m doing wrong, or if my Servoy installation is damaged, the net result though is that we cannot share our solutions.

Any help or pointing in the right direction for documentation would be appreciated…

Thanks

Bevil

I’m having the same kinds of problems.

I have received an updated export from another developer, I don’t have a standalone repository server machine, but am using my laptop as the repository. I have imported the updated .servoy file, and it seems to have successfully imported and activated, however if I try to run the solution, I only see my old version, not the changes that have been made. There must be an issue with the syncing / repository / team sharing thing.

when you import a solution via admin page, it is imported in the db repository, not in the eclipse workspace, so it does not alter your
servoy eclipse solution

So, when I try to synchronise, I get the synchronise view with servoy_localhost_resources and tapelibrary (my solution), both have an icon that looks a little like two red arrows pointing away from each other with a white asterisk on them. If I right click and choose synchronise on either of them, apparently nothing happens. At the very bottom of the perspective I have the two arrow thing with 359 next to it (359 conflicts??? I don’t know what it means.) There is also a small grey arrow pointing to the left with 0 and to the right with 5. If I expand tapelibrary for example I get a list of about 25 folders with things like forms, forms/attachments, forms/contacts etc. Each of these folders has the red two arrow asterisk deal. If I right click one of them and synchronise - apparently nothing happens. I then expand one of these folders and see another 25 or 30 items, each with the red arrow deal, but now with a white plus in the middle. If I right click and synchronise, apparently nothing happens. I then right click and go to open in compare editor. The two sides are apparently identical… The red arrows remain.

the “synchronize” command does not modify any files, it only compare the local resource with the remote resource, and shows you the compare result;
the red arrow means you have a conflict on that resource, it mean that this resource has been modified both locally and remotely, since they were marked as being the same,
and the user must decide the right content of the resource

I then right click and merge, and get the error: “Some conflicting changes cannot be merged automatically. These changes will have to be merged manually”

the “merge” command tries to copy the remote changes to the local resource, without loosing the local changes; you got this message if it cannot be done;
in this case you will have to add manually the remote changes to the local resource, and mark it as merged, then you will have the correct resource and can commit

Hi Gabi, thanks for the reply.

Thank you for clarifying that the import imports to the repository and what synchronise means (you’d assume that it means synchronise, no?). Anyway, I didn’t know those two things.

The trouble is that when I compare them, they appear identical, and also, there are 359 of them, so it seems as though the repository and the workspace have effectively the same stuff, but somehow something is identifying them as being different, across the whole solution…

My merge command doesn’t work, and complains that it needs to be done manually, yet when you compare them, they’re identical. In any case, how do you actually manually merge them? What is the physical process? Does doing so make the red arrows disappear?

Thanks for your help.

Bevil

if you are sure they are the same,
you can do a “Revert” on a folder, to overwrite the
local version with the remote, and mark them as in-synch

They look the same, so it is confusing that they should appear as not in sync.

Also, there are 359 of them, do I have to manually do all 359??, and if so, will I have to do it every time anything changes?

Thanks

Bevil

yes, the conflicts you should resolve manually,
but you can revert on folders, that can easy this task.

if you are sure the content of the remote is the same with the local, do a revert
on the project folder, and you are done

regards,
Gabi

Hi,

I’m also having the same problems as discussed above. Unfortunately, your answers so far just don’t seem to resolve them.

Basically, I also have a solution that I’m working on (in my local workspace). When I try to commit its changes to the repository server, I get a message saying there are conflicts between the solution in my local workspace and the solution in the repository. (This seems like a situation that I’m always going to find myself in, when I’m actually working on the solution in my local workspace.)

Obviously, the version in the repository is going to be different from the one in my workspace, when I’m actually working on the one in my workspace. Surely there must be a way of updating the repository server with the modifications that I’ve made in my workspace, because at the moment I simply cant find one. As far as I can tell this seems to be a one way system. What I mean is I can copy stuff from the repository into my local workspace, but I can’t move changes in the other direction (workspace to repository).

Please can you let me know how I can copy changes from my workspace into the repository. If this isn’t possible, please can you explain why.

Thanks in advance for your time. Any help would be greatly appreciated.

Craig

if the repository tells you that there are changes you first have to update your local workspace copy

So do Team->update first right before you want to do Team->Synchronize or Team->commit

The thing is that if you are working alone on your repository and there are no other developers you should have to do update because there shouldnt be any updates
If that is the case then we have to look at that.

Hi Johan,

I am currently the only developer working on this project. However, my aim here is to set things up so that other developers in my office can also work on the same project. This team sharing idea seems to be the way to do it, but the problems I have experienced are currently putting a big rusty spanner in the works.

I’m sure you can understand that after I’ve committed a solution to the repository, I will continue working on that project in my local workspace. When this happens, I will obviously end up with a newer version of the project in my local workspace. This means that I will at some stage want to re-commit the workspace version of the project to the repository. At present this seems like a mission impossible.

If I try to commit the project when it has differences from the version in the repository, I get error messages that say I need to resolve conflicts before I can commit. When I look to see what these conflicts are, they are simple the differences between the previous version (in the repository) and the current version (in my local workspace).

Those differences are just recent work that I’ve done, that I obviously want to keep. However, I simply can’t find a way to copy those changes from my local workspace into the repository.

If I look into the team synchronizing options, it seems that the only place I can transfer changes is in the ‘Text Compare’ window. There are buttons along the top of that window for copying changes in both directions. However, the buttons for copying from my local workspace into the repository always seem to be disabled. I haven’t been able to find a way of enabling those buttons. The buttons are obviously needed, so please let me know how I can enable them, (if this can be done).

I have tried simply right clicking on the JS file in the Synchronize panel and then clicking on synchronize, but this doesn’t seem to do anything.

I have also looked into the update suggestion that you made in your reply. However, this just copies what’s in the repository to my local workspace. This is obviously not what I need to do. I actually want to copy in the other direction (workspace to repository).

At present it really does seem as though it’s physically impossible to commit to the repository after its been done for the first time. After that it seems that my only option is to copy stuff from the repository into my local workspace. This means that when I’m trying to use team sharing, I can’t make any further progress with a project after it’s been committed.

I hope I’ve explained this problem well enough for you to understand it. At present I just need to know how to commit recent changes in my local workspace to the repository. Please let me know what you think about all this??

Cheers

Craig

no an update shouldnt copy just what is in your repository
It should UPDATE your current files with changes in your repository (which are not there)
It shouldnt throw away your current changes just append maybe some changes from the repository

If update is really deleting changes that you made locally we have a bug.

Hi Johan,

At present I simply don’t want to copy anything from the repository into my local workspace. I only want to copy in the other direction and that just doesn’t seem possible at the moment.

I’ve just tried using the update option again. That now gives me the same sort of error message that I got when trying to commit. (need to resolve conflicts)

The only way that I can find out what the conflicts are is by going to the ‘Text Compare’ window for the problem files. But I still have the same problem as discussed before here. I want to copy changes from my workspace to the repository, but your software will only let me do it in the opposite direction (repository to workspace). Therefore, can you tell me if it’s possible to enable the buttons for copying from left to right (workspace to repository) in the ‘Text Compare’ window. At the moment that looks like the only way of sorting out my current problem. Please let me know if you have any alternative solutions.

Craig