views:

167

answers:

2

I am the only developer of a software project. I did not use any version control until now. I know I can put the last version of the project under version control. The question is whether it is possible to put older versions and branches of the project under version control. If it is possible, how ? which version control software should I use ? (I am using Visual Studio 2008)

Edit: I have almost all previous versions.

+2  A: 

You could do it, assuming you have copies of the older revisions that you want to put into source control (you can't magically make them appear, of course).

What I would do is take the oldest version, put it somewhere, and commit the folder to your source control (this would become Revision 1). Then, take the second-oldest version, overwrite the first version on your hard drive with that, then check in again (this becomes Revision 2 in source control). Repeat, overwriting with the next-newest revision each time until all of the versions you want are checked in.

There are good, free version control systems available. I use SVN (with the TortoiseSVN shell add-on), and I'm quite happy with it. CVS is alright too, but gets very slow as projects get large.

DannySmurf
Deleted files will be a problem, but I agree. This will preserve the history best.
Andy
True, but there's no way he's going to get a blow-by-blow of development, like he would if he had been using source control all along. These are necessarily just snapshots, and files that were previously deleted can just be removed from the most recent revision.
DannySmurf
What about branches ? I have currently 2 branches (without version control)
Multilist
All VCS support branches so just import on separate ones.
Keltia
These 2 branches share some of the code, if I import them separately, will I be able change the share code once.
Multilist
That depends on the VCS. As far as I know, with SVN or CVS you can't do that. Changes are made on the branch, then merged with the trunk (or vice versa).
DannySmurf
@Andy - deleted files needn't be a problem. After committing the oldest version, delete everything from the working copy and paste in the second oldest version. The SCM should correctly detect what's been added, changed, and deleted.
Andrew Swan
A: 

Which VCS you should use is really up to you. I'd recommend Mercurial as it is a very good distributed VCS and runs rather well under Windows. I don't know what VS support but you may want to use a supported VCS (which probably means Subversion I guess). There is TortoiseHg available there as well.

If you have all previous versions, you can import them manually, one after the other to get to the last one then work from that.

Keltia