This is an interesting one to be sure but seeing as I have recently tried it and it worked great I will put it up here. Now, there is a much better way of using Source Control, but if have always preferred either TFS Source Control or when that isn’t available I will use Visual SourceSafe.
Now, if you run Windows Vista or greater or Windows Server 2008 or greater, you can install the SkyDrive application , providing you also have a SkyDrive account. What this does is creates a folder on your local machine called SkyDrive.
See it under the Recent Places folder at the top of the folders. What you can then do it create a SourceSafe database in this location.
So as one can see there is the SourceSafe “database” the files and folders that make up this database.
A couple of notes on this. I am using SourceSafe 2005, this version is far more stable than the older Version 6, but I do know that Version 6 is still being used. In reality this is only recommended if you are not using other Source Control applications or prefer SourceSafe. Understand that Microsoft has stopped official support for 2005 version of SourceSafe as of July 2012. Extended support is still for a few more years yet. So if something happens it is up to you to fix this issues.
This isn’t putting SourceSafe up on SkyDrive it is merely leveraging the space up there and the tools to synchronise the data between your local machine and the web. This offers a nice backup if something does happen to you machine and the local version is corrupted in anyway.
Check-ins are not immediately updated to the SkyDrive storage. A change that has been made to the files is picked up pretty quickly but, depending on the bandwidth available it can take a while to properly synchronise the changes to the SkyDrive.
- The SourceSafe database is still local, meaning, if you aren’t connected to the internet at the time file check-ins occur, the check-ins will still happen and your history is maintained, next time you connect to SkyDrive all changes in the files of the SourceSafe database are updated.
- If, the connection during synchronisation is lost and considering how sensitive the SourceSafe database is to issues like that, it might corrupt the data on the SkyDrive. This can be fixed next time the connection is established, it should look at the changes made and update them from local. I can’t say for sure, and I don’t want to test it out. It is recommended that this kind of operation is done over a nice trusty connection.
- This will work with any file based source control system. Even a TFS implementation would benefit from this but it would be recommended that the database of the TFS server (a SQL Server edition) is not placed into these folders. But setting up a job that creates a backup and having this file placed in there is a great way for a backup.
- If you have a team using this method understand that when you check-out a file, it will update information in the database, this needs to be synchronised with the server. If another person is using the software as well, it might take some time for the changes to filter down to them, I.E. the check-out lock on the file. This is in no way a replacement for proper communication with a team when it comes to file locks.
Please note. This is in no way supported. SkyDrive holds files for access from other machines, it is in no way a backup system nor does it provide SLAs for uptime or reliability. Microsoft could at any time decide to close down SkyDrive or delete everything there without notice. This is for people who understand the risks of not only using this method to distribute their source control to different machines without them being directly connected.
To get this to work you will need;
- A SkyDrive account, this is free to do and a free account will give you 7GB out of the box, this is more than enough for source code. There are also other sites that offer free online storage or paid options. Some services might offer assurances of the service. See below for a list of the various online file hosting services.
- A licence to use Microsoft Visual SourceSafe, or other version control system (some are Open Source), check for a list of version controls systems.
- Software from the hosting service, compatible with your operating system that will synchronise the files between your local machine and the server.
Like I mentioned, I am using SourceSafe and my examples if for SourceSafe, but this could work for most of the version control software that is out there. But test it out, if money is a factor, then there are free hosting services that provide software to synchronise files between client and server. There is also plenty of free source control systems that would work with this setup. Try them, as the platforms should not be a need. SkyDrive also offers these services on Mac (shudder). But, there are plenty of Mac supported version control systems, even ones that work across platforms, so working on a Windows and Mac with SkyDrive would not be a problem.