Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

ionForge Evolution Source Control System Simplifies Your Build and Development Process

4 Nov 2004 1  
What you see should be what you get. Unfortunately, this is not the case with source control clients.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Contents

Real Time Client Updating

What you see should be what you get. Unfortunately, this is not the case with source control clients. Imagine using Windows Explorer without being at least 99% certain that the information it is displaying to you isn't from yesterday. Why tolerate that possibility with your source control?

With Evolution, clients will always display the actual current state of the system, without the need for refreshing or guesswork. From a common checkin to a complex branch to a trivial rename, when it happens on the server, all connected clients will see it too. We've gone to great lengths to ensure that using Evolution is easy and intuitive, and that network traffic is kept to a bare minimum.

A file's state is immediately obvious at a glance... it's most current version number, whether or not it is shared, reflected, and more. No need to right click, choose to display history, and then dig through irrelevant information.

No other source control solution comes close.

Minimize Merge Incidents

Branching and merging are costly yet necessary evils that consume your team's precious resources. Evolution minimizes merge occurrences by eliminating the need to spin off new branches just for QA (or any other) purpose.

Evolution's innovation Production� system allows the exact state of your code base at any given point in time to be saved. Productions are logical groupings of objects (files and other Productions). A revision of a Production references specific versions of its objects.

Therefore, instead of creating a code branch (which must then be carefully managed), simply create a Production version, which will allow the exact state to be restored or compared later. Control over changes is established by advancing object revisions up through your custom-defined promotion ladder.

However, branching is necessary in some cases. Evolution provides a uni-directional reflection mechanism (sometimes called "Branch on Change"), which gives you the power to automatically propogate changes from archetype objects to reflection objects, and to be alerted when an attempt is made to propogate a change in an improper direction.

Deferred Locking

Often, when a development team decides that an exclusive checkout rather than a shared lock environment is the correct solution for them, developers feel that they are waiting in a line to edit a popular file. Efficiency is decreased when this occurs since there must be explicit communication to alert the current lock owner that there are one or more team members waiting for them to complete their work.

Why not let your tool handle this for you? Evolution has an automated facility that will queue up checkout requests, granting locks and sending notifications via email to speed up the entire development process.

Works In Progress

Check in incomplete code without the fear of breaking anyone else's environment with Works in Progress (WIP). When a developer checks a file in as a WIP, the server automatically tags that new version. Only the user that performed the checkin will get the new version during a synchronization operation, any other users will, by default, get the last non-WIP.

This removes the possibility of lost work due to drive failure or other catastrophe, and eliminates the excuse of leaving files locked for extended periods of time.

Some other products offer "pinning" as a solution. But they leave it as a manual process, which introduces the possibility of inadvertently leaving a file pinned, causing confusion later on when fixes and changes appear to not be committed to the repository.

Control Entire Projects and Whole Components

Managing a large code base of hundreds, if not tens of thousands, of files is not uncommon in today's fast paced world.

Source control has not evolved with the exponentially increasing complex needs of software developers.

Vendors have come up with bandages to make managing your code and processes less painful, but they have not provided an answer to the root problem. The root problem being that current source control solutions are still trying to control your code at the individual file level. This may have been sufficient 20 years ago, but certainly not today.

Labels are nothing more than a workaround for an antiquated paradigm. What is needed is a true high level abstraction to control groups of objects.

Evolution's Production system provides a method that, while still using a familiar interface, opens an entirely new dimension of control to your process.

Find out more and download a free copy

Find out more about Evolution's powerful feature set and how it can immediately increase your team's productivity at http://www.ionforge.com/.

You can also download a free two user evaluation at http://www.ionforge.com/downloads/.

For more information about Evolution or our $99 competitive upgrade pricing (from regular retail of $550/license), contact sales@ionforge.com or 949-679-9654.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here