Subversion 1.5 released

Subversion development team has released a version 1.5 of the awesome source control system with several new features. My favorite feature one is "merge tracking" as defined in release notes as

"Merge tracking means Subversion keeps track of what changes have been merged where. This reduces the overhead involved in maintaining branches, and gives users a way to inquire what changes are merged -- or are available to be merged -- on different lines of development".

We follow a structured release process at work where before production, we will create a release branch for the code. This branch is where we will run our integration (selenium) tests, fix last few bugs and things of that nature. Presently we have to keep track of those changes individually and ensure that those are merged into trunk appropriately. Subversion's "merge tracking" feature fixes the manual figuring of which changes need to be merged between branches. Instead you just tell Subversion you want the branch changes merged to the trunk, and it figures out what to merge. Pretty neat.

However for some of the feature in new release both client and server have to be upgraded.

Automate Visual SourceSafe Backup

I work with Source Safe as a source control repository in my current job where I also acted as a Configuration Manager for Capability Maturity Model (CMM) compliance. One of my job description is to manage sourcesafe database. Recently I was getting tired of manually backing up the source safe database by going into the source safe administration and going through manual back up procedure. So I decided to automate the procedure. What I end up doing is creating a batch file and creating a schedule task on my windows machine so that it wouldn't require any manual intervention and could run on weekends. My goals for this process were to

1. Automate the process so it occurs once a week. 2. Generate backup files that are identified by date (ie. '08-20-2000 Project Backup.ssa').

Step 1:

Create a batch file which looks like this

@ECHO OFF
rem ******************************************
rem This file is used to run backup on a specified Source Safe database or individual project.
rem You can use windows scheduler service to schedule this task run periodically preferablly
rem once a week. I have set up 'VSS' folder on my local drive with 'backup' as a subfolder. This
rem batch file will create a new file within the 'backup' named as current date.
rem **********************************************
@TITLE Backing up source safe databases
FOR /F "tokens=2-4 delims=/ " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
cd\
cd program files\microsoft visual studio\vss\win32
ssarc -yAdmin,sourcesafeadminpassword -d- -i-y -sC:\source_safe repository c:\VSS\backups\%DATE% mybackup.ssa $/
@ECHO Finished backups

* replace sourcesafeadminpassword with your password
* replace "-sC:\source_safe repository" with the location of your source safe repository.
* replace "c:\VSS\backups" with your choice of location for backup.
* $/ represents the whole source safe tree. You can include a project name if you want to back only a particular project.

Step 2:

Automate the batch file with the window scheduler service.

After following the above two steps you should be good to go and your backups will be saved in the location that you have specified in the batch file. I will write more about the batch file and explaining various parameters later.