CVS SCC proxy is the
SCC API plug-in which provides access from practically all Microsoft SCC
enabled software to general CVS repositories. The Microsoft SCC API is supported
by: MS VC 5.0-7.0, MS VB 5.0-7.0, MS .NET, MS FrontPage, MS DEV and other
Microsoft development tools. With the support of 3rd party tools this plug-in can be used
by Borland IDE's.
You can review its technical
specifications later, and now let us explain in detail what we are
talking about. First of all CVS SCC proxy is a developer-oriented software
or tool, i.e. if you know nothing about software development, then this software
is not for you. But as a developer you must have heard about Source Code
Control (SCC). When you work alone there is no need in source sharing with
other developers, and using of SCC is usually unnecessary. But when working
in team you have to share sources. You may say - "It is simple: put all the
sources into a network drive, and several developers will be able to work
with them". Yes, it is a possible decision. But what happens, if two developers
modify the same file? You are right, changes of one of them will be lost.
Source control systems helps to avoid this problem. The idea is to store
recently added sources on a server and not to modify them directly. Each
developer gets his own copy instead. If a developer wants to modify a file,
he performs checkout (informs others that he is going to modify that file),
when the modification is done, he uploads (or checks in) the file to the
server. The server resolves conflicts (when two users modify the same file)
automatically on the line level, i.e. if one developer modifies the top
lines and another - the bottom ones, the file will be automatically merged.
If they modify the same lines then the developer being the last to upload
the changes has to resolve the conflict manually, but it happens very seldom.
This is the main function of a source control system. Moreover, source control
systems provide some additional useful functions such as: comparison of versions
(visual), rollback, notifications, locks and so on. Due to these functions
using of source control is helpful for a single developer in his work, since
it makes backup of different versions of a source code unnecessary.
Thus, now you know what is source control. There exist
many implementations of source control systems. We consider only two which
are the most useful: MS SourceSafe, and CVS. MS SourceSafe is supplied with
any installation of MS IDE, i.e. it is integrated into such softwares. That
is why we shall start with this system. CVS is an open and free source developed
by UNIX. Presently it is practically standard-de-facto in development community.
Let us compare the two systems. Usually MS SourceSafe
(MSSS) is supplied with very convenient and intuitive UI. Even this enough
complex tool is easy in use. We like the way it works, but only from the
UI viewpoint. After you learn more about source control you may want to
do many interesting and useful things for the project support. For example,
you may want to create source branch, i.e. to mark the sources somehow
for current release and continue working on a new one, and at the same time
to perform bug fixing in released version and then simply merge the two versions.
Or maybe you want to provide possibility for some of your advanced developers
to work from home, and many other things. The fact is that MSSS does not
support these functions. Moreover, it stores the entire file for each version,
so at some moment you will be surprised to find out that your source repository
is too large. And if something happens to the repositories, it will be impossible
to recover them, since very strange file names are used by the system, and
you can easily loose all your sources. After detecting these problems we
began to look for a more smart system.
And we found CVS. CVS is a really great tool. Its
repository format is very simple, and you can modify it manually if necessary.
There are several ways of obtaining remote access to it, including via low-bandwidth
connections (general modem). It has many functions for code merging, branching,
notifications and so on. It is really a great tool and free. But the main
problem we found was the UI problem. As a matter of fact CVS is a command
line tool (developed by UNIX, as you remember). Activating it from the command
line is an ungrateful task in our time. But fortunately we discovered many
graphical front-end shells for this tool. The most convenient is WinCvs. It is the most powerful tool for
operating CVS repositories from Windows. It covers practically all functions
of CVS.
"Wow, we will use WinCvs, why should we use your
SCC proxy?" - you may ask. The fact is that while working with MSVC we got
accustomed to obtaining integrated access to source control directly from
IDE, but not from irrelevant program. It is very convenient. When you make
coding you do not need to refer to a specific function of CVS, you simply
perform checkin and checkout, these operations are preferably initiated
from IDE. We tried hard to find a proxy between CVS and MS IDE, but unsuccessfully.
The only program we found is Jalindi
Igloo. It is free, but too complex and has many bugs. At first we used
it, but then we created our own tool, which
you can presently find at our site.