TIP: Team Support basics

Questions and answers regarding the use of eclipse environment as seen in Servoy Developer

TIP: Team Support basics

Postby pbakker » Fri Aug 22, 2008 10:19 am

Eclipse offers Team Support. Team Support is the Eclipse way to allow multiple developers to work on the same project. Each developer works on a local copy of code in the so-called workspace and “syncs” his/her changes back to a central repository. Such a repository can be a SVN, a CVS or a Servoy Repository.

To do the syncing of your local copy to the centralized Repository, you need a Team Provider in Eclipse. Each type of central repository has it's own implementation of a Team Provider:
    - for CVS: built into Eclipse
    - for SVN: Subversive, Subclipse (See: viewtopic.php?f=38&t=11052)
    - for Servoy Repository: Servoy Team Provider (comes with Servoy in Eclipse (aka "Serclipse"))

The typical LifeCycle of a Solution using a Team Provider is the following:
For a New Solution:
    A1- Create new solution in Serclipse: the solution will live only in your local workspace
    A2- Share the solution with a central repository: A solution can be shared (=linked) to only 1 central repository. Once connected to a repository, you can always unshare again, if needed.
    A3- Commit the solution: since it’s the first commit of a new solution, you commit everything
    A4- Continue development
    A5- from here, the lifecycle continues below at B3

Existing solution in Repository:
    B1- Checkout solution from Repository into your local workspace
    B2- Continue development locally.
    B3- Call synchronize to see differences between local copy and Repository (other developers might have committed changes to the central repository since you checked out the solution)
    B4a- Update to get all non conflicting changes from the Repository into your local workspace
    B4b- If there are conflicts:
      - Overwrite: to copy the version of the Repository over to your local workspace, overwriting your local version
      - Merge: to copy the Repository version of the code for one conflict over to your local environment, overwriting just that one conflict
      - Mark as Merged: to manually mark the entire local copy as merged with the repository version. When you have called this on a local file, you basically mark the local file as leading and when you then commit the local version, it will disregard conflicts and update the Repository version, overwritting the changes other developers have did in the repository
    B5- Commit to push all local changes to the Repository
    B6- Continue development locally and the lifecycle continues at B3

Two statements to make things crystal clear:
    - The only thing to ever update the Repository (either SVN/CVS/Servoy) from Eclipse is a commit command. All other actions do NOT update the Repository.
    - When synchronizing, conflicts only arise when the central repository was updated by another developer since the last time you have been in sync with the Repository

Servoy and Team Support:
In Eclipse, you work on projects. In Servoy terms you work on Solutions, which can be modules. When using Serclipse an Eclipse project equals a Servoy solution. Besides that, there is also a Resource Project in Serclipse, that contains all info not related to a specific Servoy Solution, but more to a development server (can be localhost).

    Resource projects:
    A Resources project is a project in Eclipse in which all information is stored that is not specific to a particular Servoy Solution/Module, so for example info on columns of tables, Security info (groups, users and security settings on table level) and StyleSheets

    Natures:
    For projects in Eclipse to be recognized as a solution or module by Serclipse, the project needs to have a “Servoy solution” nature. When you create a new Solution through Serclipse or checkout a Solution from the Servoy Repository, this behavior gets added automatically. The behavior is stored in the (hidden) .project file on each project in Eclipse. Also see the note under “Using SVN/CVS/Other, instead of Servoy Repository Team provider“

    For projects in Eclipse to be recognized as a Servoy Resources project, the project needs to have a “Servoy Resources” nature. When you create a new Solution through Serclipse or checkout a Solution from the Servoy Repository, the Resources project is automatically created/checked out as well and this behavior gets added automatically. The behavior is stored in the (hidden) .project file on each project in Eclipse. Also see the note under “Using SVN/CVS/Other, instead of Servoy Repository Team provider“

    Servoy Team Provider:
    The Servoy Team Provider is designed to work specifically with Serclipse and offers some features that other Team Providers do not offer:
      - The Servoy Team Provider automatically takes into account modules of a Solution when performing Team actions like syncronize/commit/update
      - The Servoy Team Provider automatically takes into account the Resources project of a Solution when performing Team actions like syncronize/commit/update
      - The Servoy Team Provider automatically updates the Resources project when you check out a solution/module from the Servoy Repository.
    The Servoy Team Provider has some settings, accessible under window – Preferences – Team – Servoy Team Provider to disable/enable the behaviors described above.
      - “When synchronize/commit/update solution, also do it on resources”: By default, this flag is on and therefore, the Resources project stays in sync. When not working on the datamodel, security or styles, you can turn off this flag for quicker Team Support actions
      - “When synchronize/commit/update solution, also do it on Modules”: By default, this flag is on. You can uncheck this option if you want to work on a specific solution only, not taking it's modules into account.
      - “When checkout solution, also update resources”: Speaks for itself, based on explanation on the previous item

    Using the Servoy Repository with the Servoy Team Provider with multiple developers:
    The Servoy Repository and Servoy Application Server that are part of your local Servoy Development environment are not suiteable to act as the central repository for team development. To use the Servoy Repository with multiple developers, you need to setup a dedicated Servoy Application Server and set the servoy.application_server.startRepositoryAsTeamProvider property on the Admin pages to “true”.

    TIP: set the property to “false” on your local developer: it saves startup time

    Using SVN/CVS/Other, instead of Servoy Repository Team provider:
    When not using the Servoy Repository as the central repository you both loose and gain functionality and there are a couple of things that you need to take into account:
      - Other team providers than the Servoy Team Provider do not know about the relation between solutions, their modules and the link to the Resources project. Therefor, you as a developer have to manually perform all team actions on each project separately
      - The team providers for SVN and CVS offer rich functionality in the area of maintaining multiple versions and branches of the same solution, with a full history of who changed what when.
      - Make sure .project files are also added to the Repository of your choice, because that stores the Natures attached to projects that Serclipse needs to work properly.

Hope this will get you some more insight in team development and that it will jumpstart your development in 4.0.

Regards,

Paul
pbakker
 
Posts: 2822
Joined: Wed Oct 01, 2003 8:12 pm
Location: Amsterdam, the Netherlands

Re: TIP: Team Support basics

Postby agiletortoise » Fri Aug 22, 2008 4:20 pm

Excellent post, thanks Paul.

Question: Are there any known issues using a version control system outside of the Eclipse environment? Either using SVN from the command line instead of using Subclipse, or using another system entirely?

I've been using Git locally in my workspace, and have not yet run into any issues -- but, I also haven't started using it with any large solutions.

greg.
Greg Pierce
Agile Tortoise
SAN Developer
http://www.agiletortoise.com
User avatar
agiletortoise
 
Posts: 278
Joined: Wed Oct 12, 2005 3:26 pm
Location: Texas, USA

Re: TIP: Team Support basics

Postby IT2Be » Fri Aug 22, 2008 6:15 pm

Question: Are there any known issues using a version control system outside of the Eclipse environment? Either using SVN from the command line instead of using Subclipse, or using another system entirely?
May I counter this question, why would you use any other tool that is outside Eclipse?
What would be your benefit?
Marcel J.G. Trapman (IT2BE)
SAN partner - Freelance Java and Servoy
Servoy Components - IT2BE Plug-ins and Beans for Servoy
ServoyForge - Open Source Components for Servoy
User avatar
IT2Be
Servoy Expert
 
Posts: 4766
Joined: Tue Oct 14, 2003 7:09 pm
Location: Germany

Re: TIP: Team Support basics

Postby agiletortoise » Fri Aug 22, 2008 6:40 pm

Well, here's a good place to start: http://git.or.cz/gitwiki/GitSvnComparsion

I much prefer Git. I know the tools. I like the distributed nature of it. It's much more trivial to manage branches, etc., etc....but, it doesn't integrate with Eclipse at this time.

It also has very easy to use hooks for things like automatically committing the resource project and modules on a project, if you want to...and, once you start using GitNub (http://github.com/Caged/gitnub/wikis) and GitK (http://lwn.net/Articles/140350/) it's hard to go back to SVN.

It's just a personal preference...and, yes, I'm a weirdo. I'm sure I'll be the only person out there using this setup. :-)

greg.
Greg Pierce
Agile Tortoise
SAN Developer
http://www.agiletortoise.com
User avatar
agiletortoise
 
Posts: 278
Joined: Wed Oct 12, 2005 3:26 pm
Location: Texas, USA

Re: TIP: Team Support basics

Postby IT2Be » Fri Aug 22, 2008 10:29 pm

Greg, I sure did not want to suggest you are a weirdo. Maybe I say otherwise when we met :)
I was simply intested to understand what I might miss...
Marcel J.G. Trapman (IT2BE)
SAN partner - Freelance Java and Servoy
Servoy Components - IT2BE Plug-ins and Beans for Servoy
ServoyForge - Open Source Components for Servoy
User avatar
IT2Be
Servoy Expert
 
Posts: 4766
Joined: Tue Oct 14, 2003 7:09 pm
Location: Germany

Re: TIP: Team Support basics

Postby pbakker » Mon Aug 25, 2008 9:08 am

Hi Greg,

No, as far as I know there are no known issues when using a version control system outside of the Eclipse environment.

Basically, a workspace is just a directory structure with files in it, whether is be a Servoy solution, a Java project or anything else. So, any version control system that can work with directories and files would work, I'd say.

Paul
pbakker
 
Posts: 2822
Joined: Wed Oct 01, 2003 8:12 pm
Location: Amsterdam, the Netherlands

Re: TIP: Team Support basics

Postby Andrei Costescu » Mon Aug 25, 2008 10:08 am

Using a version control system outside of the Eclipse environment is OK, but in case you change files outside eclipse (for example after update) you might want to do a refresh in Eclipse (either using solution explorer or the navigator view) so that it sees all the changes (Eclipse does not automatically refresh resources changed with an outside tool).
Andrei Costescu
Servoy
Andrei Costescu
 
Posts: 1018
Joined: Tue Jun 26, 2007 3:14 pm

Re: TIP: Team Support basics

Postby agiletortoise » Mon Aug 25, 2008 3:40 pm

That's pretty much what I figured. Good tip on the 'refresh', however, I'll keep that in mind.

greg.
Greg Pierce
Agile Tortoise
SAN Developer
http://www.agiletortoise.com
User avatar
agiletortoise
 
Posts: 278
Joined: Wed Oct 12, 2005 3:26 pm
Location: Texas, USA

Re: TIP: Team Support basics

Postby ROCLASI » Fri Sep 26, 2008 3:16 pm

Is there anyway to use another port than 1099 for checking in/out in Serclipse ? I wanted to setup a teamserver on a machine that already has port 1099 in use so I changed it in the admin pages. But in Developer I can't tell it to use another port. Or can I?
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Mastodon: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5438
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: TIP: Team Support basics

Postby agiletortoise » Fri Sep 26, 2008 4:11 pm

Did you try "[host]:[port]" in the connection dialog? I haven't but that seems like it should work.
Greg Pierce
Agile Tortoise
SAN Developer
http://www.agiletortoise.com
User avatar
agiletortoise
 
Posts: 278
Joined: Wed Oct 12, 2005 3:26 pm
Location: Texas, USA

Re: TIP: Team Support basics

Postby ROCLASI » Fri Sep 26, 2008 4:18 pm

Hi Greg,
agiletortoise wrote:Did you try "[host]:[port]" in the connection dialog? I haven't but that seems like it should work.

Yes I tried that and the timeout error shows it just adds another port to it.
So you end up with [host]:[port]:1099. :|
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Mastodon: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5438
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: TIP: Team Support basics

Postby Gary R. Schaecher » Fri Sep 26, 2008 4:28 pm

Are you in 4.0? Yesterday we couldn't sync because of port conflict. We ended up going to admin/network page scrolling to the bottom and changing RMI port to 1100 from 1099, then in each developer copy under Window/Preferences/Servoy/Services we changed the RMI ports to 1100. After that we got passed the timeouts and were able to sync to repository again from each machine.

Gary
TMA
Gary R. Schaecher
TMA Systems, LLC
www.tmasystems.com
Gary R. Schaecher
 
Posts: 72
Joined: Sat Jan 06, 2007 11:01 pm

Re: TIP: Team Support basics

Postby ROCLASI » Fri Sep 26, 2008 4:43 pm

Hi Gary,

Yes this is 4.0.1. What I try to do is use a remote teamserver. I can access it through other means but my local Developer still insists on adding the 1099 port.
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Mastodon: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5438
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: TIP: Team Support basics

Postby mboegem » Fri Sep 26, 2008 8:39 pm

Hi Robert,

I think this is exactly what Gary was trying to point out.

1) change teamserver:
going to admin/network page scrolling to the bottom and changing RMI port to 1100 from 1099


2) change the preferences in eclipse:
in each developer copy under Window/Preferences/Servoy/Services we changed the RMI ports to 1100


I must admit: didn't try this myself, but I can imagine this is the way it should work...

Good luck!
Marc Boegem
Solutiative / JBS Group, Partner
• Servoy Certified Developer
• Servoy Valued Professional
• Freelance Developer

Image

Partner of Tower - The most powerful Git client for Mac and Windows
User avatar
mboegem
 
Posts: 1743
Joined: Sun Oct 14, 2007 1:34 pm
Location: Amsterdam

Re: TIP: Team Support basics

Postby ROCLASI » Fri Sep 26, 2008 9:04 pm

Hi Marc,

Ah yes, I tried that already and no go. It seems port 1099 is hardcoded in there.... :|
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Mastodon: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5438
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Next

Return to Eclipse Environment

Who is online

Users browsing this forum: No registered users and 4 guests