README: Source Safe launch utility for UltraEdit-32

What is this program?
Why would anyone need this program?
How do I install the program?
Okay, so how do I use it?
But I'm having problems, what now?
Help screen for SSUE.EXE

What is this program?

This program is for running Source Safe commands against files you open with UltraEdit-32. If you don't know what either one of these programs are then you may as well delete this file - you won't need it. Unless, of course, you are looking for an alternative solution to a problem you are having with other software.

Why would anyone need this program?

UltraEdit-32 allows you to configure third-party tools for use from the Tools menu. The feature allows you to pass variables to the third-party programs. Several of these are supplied by UltraEdit-32 (namely %f %p %n %e and their upper-case equivalents). See the help provided with UltraEdit-32 for more information.

Source Safe allows you to run file management commands from a DOS prompt. The program SS.EXE is the program that performs the work. All of the information needed to execute file management commands is passed to the program via the command line.

So where is the problem?

UltraEdit variables refer to the file currently active in the program window. So, if you are looking at C:\programs\source\coolproject\main.cpp. The variable %f will contain "C:\programs\source\coolproject\main.cpp".

To execute SS.EXE from UltraEdit-32 to checkout a file, you would need the following command line:

    SS.EXE checkout "%f" -GWR

This would resolve to:
    SS.EXE checkout "C:\programs\source\coolproject\main.cpp" -GWR

However, Source Safe is looking for input relative to the Source Safe database. And the above command will fail. To execute SS.EXE correctly from DOS, you would type:

    SS.EXE checkout "$/coolproject/main.cpp" -GWR


How do I install the program?

This is the easy part. There are just a few simple steps:
  1. Copy or move SSUE.EXE to your Source Safe directory (the one with SS.EXE in it)
  2. If you want, you can add the directory from step 1 into your PATH environment variable.
  3. If you want, you can create an environment variable for your Source Safe root.
    (This is the Working Folder for the $/ node in the Source Safe Explorer.)
  4. If you are going to use an environment variable for the Source Safe root
    • Windows NT/2000 - BE SURE TO EXIT all open UltraEdit-32 windows that were open before adding the variable.
    • Windows 95/98/ME - Reboot after performing steps 2 and/or 3.
IMPORTANT! Your Source Safe directory structure must match the physical directory structure of your files! This applies only to the portion of the directory structure after the Root.
Root C:\Develop\Source\MyCode\
Physical Location C:\Develop\Source\MyCode\Project1\Files\Headers\main.h
SourceSafe Location $/Project1/Files/Headers/main.h

Okay, so how do I use it?

There are three primary commands to use with Source Safe. There are many others, but most will not be useful from UltraEdit-32 as they do not act on a currently open file. Below are the relavent commands and the Tool Configuration settings for each one.

Check Out

Command Line C:\Program Files\Microsoft Visual Studio\Common\VSS\Win32\ssue.exe <SSROOT> checkout "%f" -GWR
Working Directory %P
Menu Item Name SourceSafe Check Out
Check if Windows Program Unchecked
Save all files first Unchecked (unless you prefer otherwise)
Command Output (DOS commands) Output to Listbox.  Capture Output box checked.

Check In

Command Line C:\Program Files\Microsoft Visual Studio\Common\VSS\Win32\ssue.exe <SSROOT> checkin "%f" -GWR
Working Directory %P
Menu Item Name SourceSafe Check In
Check if Windows Program Unchecked
Save all files first Unchecked (unless you prefer otherwise)
Command Output (DOS commands) Output to Listbox.  Capture Output box checked.

Undo Checkout

Command Line C:\Program Files\Microsoft Visual Studio\Common\VSS\Win32\ssue.exe <SSROOT> undocheckout "%f" -GWR
Working Directory %P
Menu Item Name SourceSafe Undo Check Out
Check if Windows Program Unchecked
Save all files first Unchecked (unless you prefer otherwise)
Command Output (DOS commands) Output to Listbox.  Capture Output box checked.

* NOTE: <SSROOT> takes one of two forms:

  1. Directory path (i.e. "C:\SOURCE\DIR") also, UNC paths should work (i.e. "\\SERVER\SHARE\DIR") but this has not been tested.
  2. An environment variable (i.e. "$SSROOT"). Do not include any punctuation unless you need double-quotes around a path with embedded spaces.

But I'm having problems, what now?

What? You found a bug... er... undocumented feature? I haven't explained something it clearly? Well, there is hope. I will provide limited support. You can contact me via e-mail at tom.welch@tenandsix.com. I will do my best to answer your queries clearly. You can find the latest and greatest on the website.

Help screen for SSUE.EXE

    Source Safe launch utility for  UltraEdit 32 (ver. 2.01)
            written by Tom Welch (c) 2001-2003 Ten and Six Software
                    e-mail tom.welch@tenandsix.com
    
    Usage:
     ssue.exe root command filename [-options] [-DB:name] [-PP:prefix] [-LOG]
    
             root:      drive path of the working folder for $/ in SS
                          example: "c:\src\work"
              or:       $ where  is an environment
                                   variable containing the drive path
                          example: "$SSROOT"
    
            command:    any valid SS.EXE command
                          example: checkout
        
            -options:   any valid SS.EXE command
                          example: "-GWR"
    
            -DB:name    name is the name of the database you wish to use
                          example: "-DB:Common"
    
            -PP:prefix  prefix folder for source safe which will be inserted
                        between "$/" and the rest of the path
                        (helpful if project is stored in multiple SS folders)
                          example: "-PP:release"
            -LOG        creates SSUELOG.XML which can be e-mailed to the
                           address above for technical support
    
    Examples:
            ssue.exe C:\DEV\SRC checkout C:\DEV\SRC\PROJ1\HELLO.CPP -GWR
            ssue.exe $SSROOT checkin C:\LOCAL\SOURCE\MYPROJ\MAIN.MAK -GWR
            ssue.exe $SSROOT undocheckout $SSROOT\THEPROJ\HELP.H -GWR
            ssue.exe $SSROOT checkout $SSROOT\THEPROJ\HELP.H -GWR -DB:Remote
    Not enough command line parameters.