Tuesday, October 17, 2006

Go! Team! Go!

The next set of enhancements that Magic Software Enterprises talks about for eDeveloper V10 relate to Version Control, which is important for team development. Team development maintains concurrency among developers when working in a multi-developer environment. It allows you to be able to synchronize the developers work, keep track of changes made to the project, and be able to retrieve previous versions of the project. In eDeveloper V10, team development is made possible by the Version Control feature.

10. Version Control Facilitator of Your Choice - eDeveloper supports any version control product that implements the SCC API V1.01, such as Visual SourceSafe® and PVCS®. You can add to this list IBM Rational ClearCase and numerous other source code control programs compliant with .scc extensions. Please keep in mind that you will be able to access the version control features from within eDeveloper V10. Some aspects of the presentation may vary depending on which source code control system you are utilizing.

11. Out-Of-The-Box Version Control Software - You can immediately start working using a complementary version control software available as part of the eDeveloper installation. The included software is CVSNT. You can get more information at http://www.cvsnt.org including the online manual at http://www.cvsnt.org/manual/html Keep in mind, this is complimentary software. I don't know if the aphorism, "you get what you pay for applies," but there have been at least some reports that getting it to work with very large numbers of programs may be extremely resource intensive. So if you have an industrial-strength code base, you may want to utilize a third-party version control system.

12. Integrated Support - Utilize every version control activity directly from the eDeveloper Studio. This is a great convenience to be able to access the features of the enterprise version control system from within eDeveloper V10 itself. So even though you are working with a SCC tool in the background, it is fairly transparent after installation.

13. Rollback Support - Revert to a previous checked-in version of any atomic project module by rolling back to a selected version. In fact, you have a wide variety of features allowing you to: Check objects in and out, undo object checkout, get the latest version, get the latest project version, see the differences between versions, see a history of revisions, see a list of objects that have been checked out, add items to the version control server, exclude projects from version control, work offline with objects, and see a list of objects that are being worked with offline.

14. Revisions History - Easily view the history of all modifications done to every atomic project module. Not all SCC applications support the ability to see the revisions history. PVCS and Visual SourceSafe do provide that capability. It is from within the history, that you can click to see the differences.

15. Offline Development - You can keep on developing your version controlled projects even if you are disconnected from the version control server. When you do this, a backup copy is created. When you go back online, you then have the ability to compare the different versions.

16. Conflict Resolving - Get a clear and concise view of potential conflicts deriving from external or offline modifications. The list simply shows you which objects have been changed. However, by clicking on the object history button, you will be able to see the history and select to see differences between versions.

So there you have it: online and offline source code control that tracks revisions in a team development environment using industry standard SCC 1.01 compliant software. Due to the built-in efficiency of the eDeveloper paradigm, programming teams will tend to be smaller than with other IDEs for older language based coding paradigms such as C++, PHP5, or RPGIV. Nevertheless, the use of revision control methodologies is a great aid to team development in eDeveloper V10 by managing revisions and source code for each element of a project.