[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 650
  • Last Modified:

[Version Control] Don't you hate it?

Oh, boy... The company I work for has been using a simple in-house source control system for several years now and it works reasonable well. Drawbacks are the speed and the flexibility of this tool that we created ourselves when we were just young and foolish. Recently we had a discussion about version control applications and now I have the honour to look for a new, better and simple version control system for Delphi.

Requirements: it must use client/server technologies and it would be nice if it was integrated with the Delphi 7 IDE. The server MUST run on a W2K machine. The price should be reasonable (and free is VERY reasonable) up to about $2500. It must be stable and secure and simple to use. Basically, all it needs to do is maintain an archive of our sources, allowing users to upload and download sources to a central repository and make sure that others can't modify the source while they themselves are using it.
It doesn't need all kinds of gadgets like branching versions and it doesn't even have to store multiple versions of our projects. The real version management is something we can do ourselves quite easily. After we make a final build, we just copy the sourcefiles into a ZIP file which is safely stored in our archive for future reference. There's only one person making these final builds and he can easily manage it all. (Then again, we have about 10 developers so there aren't many versions to maintain in the first place.)
So basically we're looking for a source archive utility for Delphi.

Now, does anyone have any useful suggestions? I have tried FreeVCS/JediVCS but it's too complex just to set up. (Too complex means that it will take too much time for the administrator to keep it running.) I've seen ftpvcs which likes to crash quite a lot. CVS appears to be nice but since we use Windows it's not a real optimal system. Also tried Team Coherence which worked nice at first (the demo) but at one point the critical errors started flying all around and after deinstallation even my Delphi setup was slightly damaged. (All toolbars were reset to the default settings.)

At this moment I'm looking at http://www.thefreecountry.com/programming/versioncontrol.shtml which contains a nice overview. But I am interested in the experiences of other experts here with version control systems that:
a) use C/S techniques
b) have both client and server available on Windows
c) Offer security
d) Easy to install and use
e) preferably integrated in the Delphi IDE.
f) this is about version control for a commercial company so it does not have to be free. (But demo's are nice.)

I am in a hurry about this since we will probably want to use the new system before the end of this year. I think it's also a bit complicated since not everyone is familiar with version control tools and some people who are often use Unix servers for version control. I might split the points over multiple answers if they are all useful and provide information not given by previous answers.
Wim ten Brink
Wim ten Brink
  • 4
  • 4
  • 2
  • +7
9 Solutions
Wim ten BrinkAuthor Commented:
On the other hand, we might end up writing our own, new source control system. Might take a few days but we don't require that much from the system...
news://forums.talkto.net jedi.vcs
JediVCS former FreeVCS.  Free under the MPL.
Ask to see if it suits your needs.
QVCS - www.qumasoft.com. It is basic, does the job, and is quite cheap. Good support (emails to developer answered within a day or two normally). We have approx 30 projects and 16 users. It's fairly fast too, faster than MS VSS that we used to use. No Delphi integration though. Files in archive are encrypted so they can't be "hacked".

Geoff M.
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

We use M$ VSS.
It is stable and easy to handle (drag and drop). The repository is on our server (NT), just a mapped network drive. Altough I do not like M$ I like VSS. The big advantage IMO is that there is nearly any feature I can think of but if you don't want to use it you don't have to. For example you can run it in client/server mode, but you don't have to. As I said, we use the stand alone version on our PCs and the repository is just a folder on our server. No IDE integration. Price: I'm not sure about that but I guess Euro 600 each single user licence.

Have fun!

You have several options that I'll list here:

1) CVS - quite complex at first, it has clients for Windows and Linux.
2) StarTeam - From Borland, I think it integrates with Delphi quite nicely.

I would strongly disadvice VSS. It's awful and unsecure and must be
administered very carefully.
Plus, the messages you get can sometimes be VERY confusing, so
avoid it.


I vote for CVS.
Hi, I would too :-)

It's complicated at first, but has so many advantages that... well, you can
learn to cope with Windows... <g>

Not long ago, I did a contract at a location that was using StarTeam and, after my first couple of encounters with it, I rather liked it.  It has some nice features with regard to fixing a set of source files as a release that you can later use to recreate that same release after you have moved on to another release.  (Boy, I wish I'd had that feature on another porject where we had to support up to 9 different releases because management didn't feel like we could "require" people to upgrade to more recent releases!)

If you can afford it, StarTeam is great.  If you can't, then go with CVS.
  My organization uses Team Coherence. I am told we are the latgest customer of TC!
  We work on a Geographically distributed team (Two states in the US and one office in India) and I guess the success of our team is partly due to TC.
  I haven't tried uninstalling TC, but haven't faced critical issues. Just that the latest version (August relese If I remember correctly) has some time-out problems, so try to get one version lower.
  You can also buy task tracking tools later (As we have done recently).
  TC gives you compare tools where you can find out what has changed in your Delphi source file (even dfms) across versions.
  We have even dumped third party tool installers at TC and have not faced problems with upto 30 MB single file (That's the max we have uploaded/downloaded).
  One advantage of TC is that you don't need to have access to the TC server's file structure: if you can ping to it, you can use TC. This is critical when there are security issues. Other teams at my organization working on MS products and using VSS envy us because when we use TC, there is a lot less pleading to network support we require to do compared to what they have to.
  Hope this helps,
Hi WorkshopAlex,
  Here are specific details:
Client Version: of TC had some problems but Client Version: works great.

  BTW, out SEPG team had the honor of "studying" various source control tools and finally recommended TC ;-)

>>[Version Control] Don't you hate it?
I hated it when I worked for an organization of 400 employees.
Now that I work for one that has 40000, I wonder how could we do without it.
>>[Version Control] Don't you hate it?
... only until the first time someone lets a nasty bug through QA and you need to back it out now because the goof is costing the company millions of dollars per hour.

We're using Serena Changeman DS here, which was selected because it could be integrated to some extent with the Changeman ZMF for hte OS/390 system.  Its list price is 1700 USD per license, with each user and each server requiring a license.

It's core appears to be based on CVS, but it has some beefed up security and workflow management pieces that would be nice if they weren't still buggy.

Previously we used MKS.  My team was able to work with it, but other teams had a lot of problems because you could not lock down the source files from directly being acessed, and many programmers would not use the tool so source archives were being corrupted and/or lost.

My vote is for CVS.  Its price is right, and it's supportable.
Wim ten BrinkAuthor Commented:
In an organisation with 30 people and perhaps 10 developers a real version control system isn't that important. Especially since we use three different development systems (VB, C++ and Delphi) next to some web-development. Since half the developers use Delphi, it is logical to provide them with some simple version control system. And here lies the problem...
If the VCS is expensive we won't even bother purchasing it. If it costs too much time to set it up and maintain it then it's not very useful either. If we need to educate all users about how to use the software and all complexities then we have a problem too since this costs time. (Besides, this means someone must already know how it works.)
So, making simple backups of every version of the software we roll out (and sell to our customers) isn't a difficult thing. It's a very simple way of keeping track of all different versions and since all roll-outs of our software is generated on a single system it's also quite easy to do. Basically, we're not that interested in maintaining different versions. But what we do think is important is trying to avoid that two users are modifying the same source files. (And a nice back-up system for the sources is quite welcome too.)

CVS is nice, I agree to that, but it is way too complicated for our simple needs. Perhaps I should examine Team Coherence again since I might have been using a flawed client version, as Shu suggests.
Serena Changeman seems interesting too. A bit expensive though. But it seems more related to distributing applications than maintaining source files. I feel it's a bit overkill for a small company like mine...
StarTeam looks cool but a thing like the workslow designer is not something we require. Overkill, again... It is a tool that does a lot more than just source control. So, basically not worth the price for us. Besides, the system requirements are a bit high. Looking at http://www.borland.com/starteam/pdf/st53_sysreqs.pdf I already start to wonder why a small company like ours needs such a huge, powerful tool.

But QVCS might also be a nice tool. It seems simple enough but I will have to do some research on it first.
Wim ten BrinkAuthor Commented:
Hmm, while testing QVCS I already notice the first flaw. I have a source file in a folder called "E:\Projects\ADSI, COM+ and WMI\WebTools\WebClient\frmMain.pas" and QVCS already has trouble finding this file when comparing it with it's archive. It seems to be looking for just "WMI\WebTools\WebClient\frmMain.pas". Not a good start and no, I'm not going to rename my project folder to support my source control software.
And for some reason it doesn't allow me to lock and unlock a *.dsk file...
The access list does offer a nice protection but unfortunately it doesn't used the windows integrated security. Now users must remember two passwords. Also, it doesn't seem to use a centralized database but just stores projects in shared folders. The only flaw this has is that users might decide to work around the system and just copy their sources directly to the VSC folders. Or worse, just use the files in the VCS directly in Delphi.

I must say, QVCS is close to the simplicity that I'm looking for.But what it lacks is a more secure client/server approach that would keep the users away from the storage of the sources within the system. Our current system also allows developers to manipulate the sources within the system and we're trying to avoid this as much as possible. With a C/S technique we could avoid such a thing.

So perhaps we will end up building our own VCS system anyway...
  TC is the first and only Version control system I have used. The only training I received on TC was the IP address of the TC server, my login name and password, my project path in TC and the information that I could Get, checkout and checkin files from TC and that it integrated into Delphi IDE.
  So, take it from a newbee: TC is easy to learn.
  The only problem we faced with TC in the last 3 months besides version was that I forgot to check-in files one day before leaving office and had to go back in the mddle of the night to let others use it :-)
  Client version has worked great for our requirement for the past 4 months.
  You could build your own VCS, but considering TC's low cost, I guess TC is worth the trouble it saves of managing yet another software ;-)
We use BK (BitKeeper) at our company.  We have over 60 developers working on the same product and bk handles really well.  IT supports both Win32 & Linux.


It's free for open-source products ... closed source products need a license.  It will NOT integrate into the Delphi IDE and the way it works is really simple ... you open up a command line prompt and use it from there :)

the basic commands you'd use are:

bk clone (clone a repos)
bk commit (commit your changes)
bk push (push your changes)
bk pull (update your code repos)

it has tons of other commands, but most of the time you'll end up using the ones above.

BTW, it has a GUI client under Linux and I _think_it does also under Win32 ... although I never use it!

Out of all the VC systems, I like bk the most.

The only thing I don't like about it is it requires cygwin on Win32 systems, but if you're also a Linux (console) user you'll find that it will save you time because it will respond to commands such as ls, ls -laF, etc ... :)
I haven't had a problem with filenames in QVCS before - are you sure you've set it up properly?

Users can "see" the files in the archive but they are in a format which is not of any use. Thus they cannot circumvent the archive. Remember that MSVSS is exactly the same in this respect.

Not had any problems with dsk files either - I've just checked and we can check in/out those files without any problems.

Access control - if you set the user name and user password to the same as the windows logon username/password, there is no need to remember a second combination. QVCS simply takes the windows logon details and thus I don't need to login at all. If the QVCS and Windows passwords are different then you *do* need to log into QVCS.

Geoff M.
Wim ten BrinkAuthor Commented:
Well, a decision has been made at my company. I'll reward everyone here for their user input.

robert_marquardt, JediVCS was a nice alternative. However, due to the complexity of the installation we decided NOT to use it. Still, 50 points.
gmayo, QVCS is a very good alternative. We tested it, it finally seemed to work okay. Except for that filename with a space in it. Which made us decide not to use it. Still, 80 points.
j42, Yep. MS VSS is one we have been examining for quite a while. 50 points.
DeerBear, StarTeam was just too big for us. And too expensive. CVS also has too many requirements and just isn't easy to maintain. I could proably maintain it myself but I won't be the one doing the maintenance. 50 points.
GloomyFriar, for saying Hi and voting for CVS, 20 points. Good to know it's a popular product.
RDWilson2, for supporting StarTeam and CVS, 20 points. Again, good to know that others liked these systems.
snehanshu, for bringing back some of my confidence in Team Coherence, 80 points.
swift99, $1700 per licence is a bit expensive and the requirements are a bit high. But still, Serena Changeman DS was interesting. Too expensive though. (And too big.) 50 points.
jconde, BitKeeper also seemed nice. Useful because it also provided me names of other version control systems. :-) 80 points.

50+80+50+50+20+20+80+50+80=480 points. 20 points left...

Since we decided to try Team Coherence a bit more, see how it works, the last 20 points go to snehanshu. He will be the one who provided the answer too. I installed a newer version of TC and it does seem to be more stable than the previous version. No nasty crashes yet.
But we're still considering to make our own, simplified VCS if we can find some time to do so. All we need is some vault where we can store source files, preventing two developers manipulating the same files. (And a snapshot mechanism to make snapshots of versions that have been send to customers.)
Thank you Alex.
My next task: to contact QSC to collect my commission!

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 4
  • 2
  • +7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now