Currently I'm using Source Safe with a legacy VB6 application and I've noticed countless times where the application is not updating the files correctly using the get latest version, or adding new files to a project. I just figure someone has to have a better way of using version control with VB6 applica开发者_JS百科tions.
Use something else - anything else. The three more popular free/open source solutions are git, mercurial, and svn. I doubt that git and mercurial integrate into VB6 but SVN does have an integration solution - you can find it here: http://svnvb6.tigris.org/
For what it's worth, I have gotten used to not having source code control integrated into my IDE, so integration wouldn't even be a factor in my decision if I were choosing a new solution.
I've been using Mercurial with a combination VB6/.NET application for about a year. It works. I encountered the following problems on the VB6 side, but they're not deal-breakers:
If you have "resources" on a form like an image, it embeds those in a parallel .frx file next to the .frm file, and these .frx files can't be merged if you and a co-worker both make changes at the same time. Source control that offers locking on specific file types would work better for this. What we had to do was either (a) live with the few cases where it happened or (b) use some kind of manual locking procedure: "I'm editing frmMain... nobody else touch it!"
The VB6 IDE has some nasty problems with trying to auto-correct the case of your identifiers, and it doesn't do a good job. Therefore Mercurial is forever seeing changes in a file where all that really changed was the case of a variable name. The worst part is that the IDE treats Enum values as global variables, so it will take the case of your Enum values and apply that to all variables with the same name in your code.
I would give SourceGear Vault a shot. They have VB6 integration and it works pretty darn well. Plus it is free for 2 users.
I've tried SVN, but like @MarkJ says, it'll struggle - SVN relies too much on merging. You'll have to mark .frx files to be exclusively checked out, which then might put them out of sync with .frm files, which will force you place .from files to be exclusively checked out and at that point you might as well make exclusive checkouts the default, which kind of defeats SVN's main strength.
We switched from using StarTeam to use Team Foundation Server which actually integrates really well with the VB6 IDE using the MSSCCI Provider
In VSS explorer
try settings Tools | Options
tab Local Files
setting Compare files by
to Contents
. This might slow VSS operations a bit.
精彩评论