Monday, August 3, 2009

SourceSafe history report - from the command line

Sometimes it is really useful to be able to do a history report on your SourceSafe archive. For instance, what check-ins did the developer called X make between 1 June 2009 and 30 June 2009?

Surprisingly it can be tough to search out the exact info you need to make this work effectively. Having this sort of reporting is also really helpful when putting together release notes, especially if developers use the 'comment' feature when checking items in, and mention specific bug cases (you are using a bug tracking product, aren't you?).


Here is how you do it. Open up a command prompt. Then you need to set an environmental variable called SSDIR, this is so the following commands know what repository we will be working with. To do this type the path to the folder containing the srcsafe.ini file of the repository:

C:>set SSDIR=c:\Program Files\Sourcesafe\

Note the trailing slash, and note that the filename itself is not included. Then you need to navigate to the folder where sourcesafe is installed:

C:>cd C:\Program Files\Microsoft Visual SourceSafe

Then we use ss.exe to generate the history report. This particular command gives me all the files that were checked in between 0900 on the 1st July and 0900 on the 30th July.

C:\Program Files\Microsoft Visual SourceSafe>ss history "$/Projects/My Project" -Oc:\history.txt -R -vd30/07/09;09:00a~01/07/09;09:00a

Breaking down the command line arguments:


















Command optionWhat it means
history ss.exe can be used for many things - we are telling it to do a history report.
"$/Projects/My Project"Path to the project i want reported on in the SourceSafe repository pointed to by SSDIR.
-Oc:\blah.txt-O means output, and then i specify the file i want the data outputed to.
-RThis is the recursive flag, IOW it means do all projects (folders) under the project specified as the start point.
-vdThis is the bit that limits the date. In my case the dates are in real english format (dd/mm/yy), not US format. The later date is listed first. The tilde (~) indicates that it is a range. The time is included with the date by separating it with a semi-colon, and the AM/PM is indicated by using either 'a' or 'p'.


This gives me a nice little text file called history.txt that i can scan through (or programmatically parse), it looks a little like this:

**********************
Label: "1.0.0.635"
User: Builder Date: 31/07/09 Time: 5:02p
Labeled
Label comment: Automated Build of Version 1.0.0.635

***** AssemblyInfo.cs *****
Version 29
User: Builder Date: 31/07/09 Time: 5:02p
Checked in $/Projects/My Project/Properties
Comment: Automated Build of Version 1.0.0.635

***** GridView.cs *****
Version 41
User: Shane Date: 16/07/09 Time: 4:27p
Checked in $/Projects/My Project/Controls/GridView
Comment: case 12345, changed how a column was rendered







Keywords: sourcesafe, history report, command line

Saturday, July 4, 2009

Activating Office 2007 on Windows 7 RC

I was trying to activate Office 2007 running on Windows 7 RC, but i kept getting an error message saying that there was an error communicating with the server, please try again in a few minutes. Selecting the option to activate by phone instead caused the activation dialog to disappear, it would not give me a product code or allow me to enter in an activation code.

The solution to this was simple - i needed to run the Office product (whichever one i was using to do the activation, Outlook in my case) as admin. I am in the admin group, but that is not sufficient (because even when you are logged in as administrator, processes you spawn still run at a reduced privilege level) - you need to run the process as administrator. There is an extra step involved when trying to do this with an Office product, as the installed shortcuts don't give you the Run as administrator option when you right click on them.


  • determine where the Office product is installed to*, i.e. it will usually be C:\Program Files (x86)\Microsoft Office\Office12
  • find the exe of one of the products, so you want to find WINWORD.EXE, EXCEL.EXE, OUTLOOK.EXE or MSACCESS.EXE, right click on the file, select Run as administrator
  • click Yes on the UAC prompt, or select the Administrator user and enter the admin password if you get that prompt
  • if you are running Word/Excel/Access, click on the launch orb in the top left corner, select Word Options/Excel Options/Access Options, in the Options popup dialog select Resources, then select activate Microsoft Office
  • if you are running Outlook from the step above, select Help->Activate Product
  • in the activation dialog, select the activate via internet option, click Next
  • Office should now activate. If it doesn't then you may have a firewall, proxy, or general connection problem.


*note that because the Office products have a special sort of shortcut installed, you cannot just right click on the short cut and go Properties->General to find the path to the executable, as the path shown in that tab will be the path to the shortcut file itself, not the product executable



Keywords: Office 2007 activation, activation error, Windows 7