FreeVCS, what's this?
(or why you should use a version control system)

Although many developers think of a version control system (VCS) as an expensive, complex, hard to use tool for a big development shared with many users (they are right for some systems) it may also be a very useful and handy help for the stand alone development of a small application or a component.

Have you ever modified a module from a working application to make the thing's going better or faster and after a while nothing will work as you expected (or will not work at all)? Have you ever had 10 directories with different source version and no idea witch one holds the change you are searching for? Have you ever started a faulty application from the IDE without backing up your source files?
Have you ever lost one of your source files?

If you can say 'No' to all these questions, FreeVCS is probably not the right tool for you...(however, I don't believe this ;-)

Otherwise:
The best way in this respect is to have the opportunity to get the original, unmodified modules back or at least to compare the changes to the latest version[s] of the modules. (A kind of 'Unrestricted Undo over a complete development' - module by module, all at one time, or to a predefined development state)

When you use FreeVCS, your files and projects are stored compressed in a local or remote database (the version archive). This safely stores your information and provides historical information and version tracking
Saving (or restoring) of a module will take you just a few seconds. This is not restricted to the latest version of a module, you may get back any state of any module stored in the archive.
Due to FreeVCS's ability to show the differences between modules on disk to recent versions or between different versions of a module stored in the version archive it is easy for you to follow the changes made to a specific file.

In contrast to some file-based systems FreeVCS works project oriented. With each change in the version archive, FreeVCS records information's in his log file (if enabled.) Each time a module is added, modified, moved or deleted from a project, FreeVCS updates both the module in the version archive and the log file.
The advantage of such higher-level histories in contrast to module based histories is plausible:
Suppose a feature that was working correctly last week breaks in this week’s build of your project. Obviously, someone introduced this bug recently, but in what file?
For instance, Project history might show that main.pas was just modified; before that const.pas was changed; before that options.pas was added to the project and so on. FreeVCS enables you to view the order of changes over the last week, who did it and why she/he (or you?) did it.

The FreeVCS IDE expert integrates directly with Delphi, you have access to all functions without leaving the IDE:

Project Manager:

Project manager is FreeVCS main user interface. From this window, you navigate your FreeVCS project, select modules, and execute the standard version control (and all other) functions that act on those projects and modules.
Project manager is a non-modal window, it can be left open while doing the usual work in the IDE.

A FreeVCS project has much in common with a Delphi project, but there are significant differences:
A FreeVCS project is a collection of interrelated files that you store in the version archive under the same project name, either user defined (in the Stand-alone version) or based on an existing Delphi project .
To simplify the creation, the modules of your Delphi projects will be added automatically to the FreeVCS project (FreeVCS may also find the components and additional units used in your projects), but 'modules' in this context means not only Delphi related files. This will belong (nearly) to any type of file (components, packages, resources, include files, text files, help source files, graphics, installation files, documentation, bitmaps, binaries...) you wish to associate with your project. Because FreeVCS stores the modules with the complete path they may reside in any folder on your disk.
FreeVCS also supports files shared between different projects - one physical file but accessible from all projects.

Common version tracking features
available in FreeVCS:
Additional features:
  Add/ Remove   VERSIONINFO Resource handling
  View   Backup
  Check In/Out / Undo Check Out   Purge (& keep a max. number of revisions)
  Get   Touch
  Visual (& Binary) Compare   Used Units
  Branch   Used Components
  Share   Externals (LoadLibrary...)
  Merge   Project Cross-references
  Synchronize   Development Time Log
  File based History   ToDo list
  Project based History   Recent project list
  Share the archive via network   Notify via network
  Create working folders based
on archive projects
  Rename projects
  Keywords (Labels) for modules and
project versions
  Development state backup in a single
Zip file 

Check in of a module:

Select one, a selection or all modules from Project Manager (or the current IDE file by a keyhook), add a comment, a keyword and click on Check In, that's all.

Labels (strings up to 250 chars) can be assigned to a group of modules. These keywords can be used later (in Synchronize) to get a defined quantity of modules or a defined development state back to your working (or an other) directory.

Select one, a selection or all modules from Project Manager (or the current IDE file by a keyhook), add a comment and click on Check Out, that's all.

On checking a module out FreeVCS creates a new (the locked) revision and save the original module to give you the chance to 'Undo' all the changes you have made or to restore any of the old versions. You never work with the master copy of the module that is stored in the version archive.

Visual compare:

To see the changes you've made while developing you can do a 'Visual Compare' between the module in your working directory and any older version stored in the archive. It is also possible to compare versions inside the archive. (.dfm (Form) files will be automatically converted to temporary text files to compare them.) Binary files may be compared via the CRC32 checksum stored by FreeVCS.

You have the possibility of specifying different editors (e.g. a HTML editor) for all your modules and to load the modules from Project Manager into these editors directly from the Delphi IDE (a kind of enhanced View).

Recent Delphi projects (packages, project groups) will be stored in a history (MRU). In opposite to the Delphi IDE this list can hold up to 100 of the most recent projects.

Loss of data: You can put the archive on a second drive and the (compressed) backup on a third (e.g. remote) drive to be protected from damaged disks.

FreeVCS will create a backup list including all the modules associated with your project who has needed to be saved since the last backup at run time. You are only one mouse click away from a regularly backup.

All of this will work with a minimum of configuration: The FreeVCS setup program will do all necessary settings for you.

This is a subset of the functions available in FreeVCS. Download and install to see more.

As you can see on this site, FreeVCS (currently 70 forms, 76 units, about 3.4 MB source) was written by the help of FreeVCS.

Although other version control systems are more complex and offer more features (and maybe fewer bugs?) - remember, you cannot compare such a commercial application developed by an entire company to a free one - I think this one is worth taking a look on it (apart from the fact that it is free).


Copyright © 2000 ( Thomas Hensle ) All rights reserved.
Version: 2.0.0 (15. Jan 00)