Click here to Skip to main content
15,896,359 members
Articles / Programming Languages / C++

Effective SourceSafe - Shell Extension for SourceSafe

Rate me:
Please Sign up or sign in to vote.
3.88/5 (12 votes)
7 Jan 20023 min read 206.6K   1.3K   72   38
A shell extension enabling basic SourceSafe functionalities in Windows shell
With the Effective SourceSafe extension, you can check in/out your source files directly in Windows Explorer.

Sample Image - screen.gif

Introduction

Effective SourceSafe is a shell extension enabling basic SourceSafe functionalities in Windows shell. With this extension, you can check in/out your source files directly in Windows Explorer. It has only been tested under Windows 2000/XP with SourceSafe 6.0, but it should work on older versions too. However, overlay icons will require ME or later.

Installation

For installation, type the following command in Start->Run:

regsvr32 x:\path_to_this_file\EssShell.dll

For uninstallation, type the following command in Start->Run:

regsvr32 /u x:\path_to_this_file\EssShell.dll

Then you must restart Windows Explorer by either logoff and login or restarting computer, otherwise the Ess icons won't be loaded by Explorer.

Connects to SourceSafe Database

You need to specify a profile (VssShell.ini file) to specify SourceSafe database, and which files to be included for the shell extension. A typical profile looks like:

[Common]
profiles = 1
OverlayIcons = true

[Profile_1]
VSSData = E:\VSSData\srcsafe.ini
User = David Yuheng Zhao
Pwd = 
VSSRoot = $/
LocalRoot = E:\Projects\
Include_1 = *.*
Exclude_1 = *\Debug\*.*
Exclude_2 = *\*Release*\*.*
Exclude_3 = *\Output\*.*
Exclude_4 = *.bsc
Exclude_5 = *.ilk
Exclude_6 = *.obj
Exclude_7 = *.res
Exclude_8 = *.pch
Exclude_9 = *.pdb
Exclude_10 = *.aps
Exclude_11 = *.vssscc
Exclude_12 = *.*~*
Exclude_13 = *.scc
Exclude_14 = dlldata.c
Exclude_15 = *.ncb
Exclude_16 = *.positions
Exclude_17 = *_i.c
Exclude_18 = *_p.c
Exclude_19 = *_h.h
Exclude_20 = *.tmp
Exclude_21 = thumbs.db

You must specify the correct path to the SourceSafe database (VSSData), user name (User) and password (Pwd). Then you also need to specify a project (VSSRoot) from VSS (e.g., $/ or $/my_project/) and the corresponding local path (LocalRoot).

Files to be monitored are defined by "include" and "exclude" rules, the default rules are for Visual C++ projects where compiler generated files are excluded.

The INI file will be reloaded automatically when you save the file.

Usage

If you have given correct parameters in essshell.ini, you should get some additional menu items when you right click any source file in the project folder. Please note that only relevant actions are available:

  • Add to source control
  • Get latest version
  • Check out
  • Check in
  • Undo check out
  • Exclude from source control * (not implemented yet)
  • Delete at source control*
  • About ..

Items marked with (*) are only displayed when you hold shift key when you right click at the item. When you hold shift key, (R) may appear on several menu items, then these commands will be performed recursively.

Known Issues

  • Performance - Windows Explorer may become slower when you enable the overlay icons, which shows whether a file is checked out. You can disable that by setting OverlayIcons to false.
  • Use default settings only - The shell extension uses default SourceSafe settings only, and you will be ignored when you get a file which is already checked out. I will work on this when I have time.
  • Crash in File Open/Save Dialog - If you browse to a project folder in a file open/save dialog and then close the dialog immediately, the application may crash. The reason is that ESS caches SourceSafe object for about 250 ms before it cleans up. This speeds up the redraw of overlay icons. If you close the window before cleaning, the object will be destroyed at DLL_PROCESS_DETACH and an exception arises. If you are familiar with this kind of problem, please advise me. You can disable overlay icon to avoid this problem, or just wait for a while before closing any open/save dialog.
  • Bugs - As the version is only 0.1, some bugs will be expected. Please send me a message here and I will try to figure it out.

Latest Version

Freeware

Effective SourceSafe is a freeware, so use it freely. If you like it and find it useful, please tell your friends about it. The latest information will be available here.

Version 0.1

Copyright © Ministars Software & David Y. Zhao 2001-2002.

All rights reserved.

History

  • 5th January, 2002: Initial version

License

This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.

A list of licenses authors might use can be found here.


Written By
Web Developer
Sweden Sweden
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionSource Code Pin
DenzleiM19-Jun-11 22:52
DenzleiM19-Jun-11 22:52 
AnswerRe: Source Code Pin
DenzleiM19-Jun-11 22:59
DenzleiM19-Jun-11 22:59 
GeneralMy vote of 5 Pin
Ramprasad_N14-Apr-11 21:06
Ramprasad_N14-Apr-11 21:06 
GeneralWorks perfectly Pin
Ramprasad_N14-Apr-11 21:03
Ramprasad_N14-Apr-11 21:03 
Generaldont work Pin
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:19
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:19 
GeneralDon't Works here... Pin
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:18
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:18 
GeneralDon't Works here... Pin
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:17
Thomaz Luiz de Torres Bandeira.11-Dec-07 7:17 
GeneralOther free shell extension for SourceSafe - SourceXplore Pin
achirlin19-Jul-07 9:34
achirlin19-Jul-07 9:34 
GeneralOther SCC Shell Extensions Pin
Damian Powell14-Jul-03 0:08
Damian Powell14-Jul-03 0:08 
This is a useful tool. SourceSafe doesn't have the nicest user interface and it's built-in diff tool leaves a good deal to be desired when compared to something like Beyond Compare (http://www.scootersoftware.com/). Thanks for your efforts.

I have a few questions and suggestions though:

1) How could performance be improved? It's a touch slow at the moment.
2) Is the performance problem related to SourceSafe or due to some caching by ESS?
3) Could we have a little feedback about what it's doing?
4) Is it possible to setup the system so that it would automatically recognise a SourceSafe directory rather than having to specify them explicitly in the .ini file?

Have you ever seen TortoiseSVN or TortoiseCVS? They are shell extensions for Subversion and CVS (respectively) and they are both pretty darn good. Although they share little in terms of their code base (they did at one time!), they still share a similar design. Both applications come in two parts: the shell extension which manages the menus and a separate exe which is spawned by the shell extension to handle user commands. This architecture not only means that it is easier to test the commands (because they can just be debugged like any windows app) but also, if they crash, they don't take Explorer with them and they don't hold Explorer up too much while they're running because they are just another process rather than the main Shell process.

For more information, see http://www.tortoisesvn.org and http://www.tortoisecvs.org.


TTFN,
Damian.

-------------
Damian Powell

GeneralThe source code is released at sourceforge.net Pin
David Y. Zhao28-Jan-03 8:32
David Y. Zhao28-Jan-03 8:32 
GeneralRe: The source code is released at sourceforge.net Pin
fifi8-Mar-03 11:23
fifi8-Mar-03 11:23 
GeneralRe: The source code is there @ sourceforge :-) Pin
jornh9-Feb-04 6:38
jornh9-Feb-04 6:38 
GeneralRe: The source code is there @ sourceforge :-) Pin
Mickey Perlstein3-Apr-06 3:14
Mickey Perlstein3-Apr-06 3:14 
GeneralSourceCode and website Pin
mloibl16-Jan-03 21:16
mloibl16-Jan-03 21:16 
GeneralSource code will be released soon Pin
David Y. Zhao16-Jan-03 22:24
David Y. Zhao16-Jan-03 22:24 
Generalif anyone's interested Pin
John McKeeth12-Dec-02 1:25
sussJohn McKeeth12-Dec-02 1:25 
GeneralRe: Thanks! Pin
Anonymous12-Dec-02 11:29
Anonymous12-Dec-02 11:29 
GeneralRe: if anyone's interested Pin
f r i s c h23-Mar-10 22:26
f r i s c h23-Mar-10 22:26 
GeneralRe: if anyone's interested Pin
Askanet18-May-10 3:01
Askanet18-May-10 3:01 
GeneralI'm getting nothing as well Pin
EnderJSC11-Dec-02 21:38
EnderJSC11-Dec-02 21:38 
GeneralRe: I'm getting nothing as well Pin
SteveCulshaw12-Dec-02 1:48
SteveCulshaw12-Dec-02 1:48 
GeneralBasic - how to install Pin
SteveCulshaw3-Dec-02 22:08
SteveCulshaw3-Dec-02 22:08 
GeneralRe: Basic - how to install Pin
SteveCulshaw11-Dec-02 1:00
SteveCulshaw11-Dec-02 1:00 
GeneralEffective SourceSafe - Shell extension on NT 4.0 Pin
19-Jun-02 11:22
suss19-Jun-02 11:22 
GeneralWrong check out status Pin
12-Jun-02 3:03
suss12-Jun-02 3:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.