Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.

ID: 15680, Microsoft Source Safe For JBuilder 4 Ent. v1.0.3

by David Brouse Email: Anonymous

Open Tool For Microsoft Source Safe 5.0 & 6.0 Integration Into JBuilder 4 Enterprise.
Download Details
FTP  download also available
CDN Login Required to Download. (You will be redirected to the login page if you click on the Download Link)
To download this, you must have registered:
A free membership

For JBuilder, Version 4.0  to 4.0 2751 downloads
Copyright: All rights reserved

Size: 83,968 bytes
Updated on Wed, 08 Aug 2001 07:57:41 GMT
Originally uploaded on Wed, 28 Feb 2001 07:36:30 GMT
SHA1 Hash: 172E6EC7B9B57368F28DB2DEAA4C990134A6F02C
MD5 Hash: C24B565B0B36FF3F25D76FC5BF4ABE1E

    Explore the files in this upload

What's New:
- Added "Get" and "Checkout" for an entire project.

Microsoft Source Safe Open Tool Plug-In version 1.0.3 For JBuilder 4 Enterprise

This tool uses the Borland's Version Control Open Tool API to add basic
Microsoft Source Safe support to JBuilder 4 Enterprise. The following
Source Safe functions can be performed: add, check out, check in, undo
checkout, get, and status. It also allows for the viewing of revision
history and visul differencing of files via the "History" in the editor
pane as well as the ability to perform actions on multiple files.

NOTE: This tool has been tested with Microsoft Source Safe v5.0 and
v6.0. I don't know whether or not it will work with versions
prior to 5.0.

It has been verified to work with Windows NT 4.0, Windows 2000,
Windows 95, and Windows 98SE.

I am providing this software "as is". Please read the licensing agreement
before installing this sofware.

1. Place the jar file "sourcesafevcs.jar" into the "lib/ext" directory
of your JBuilder 4 installation.

2. This tool uses the Microsoft Source Safe command line executable
"SS.EXE". This executable looks at the "SRCSAFE.INI" file to
determine which database to use. If you are experiencing lockups
in JBuilder, set the environment variable "SSDIR" to point to your

3. Restart JBuilder 4.

Using The Plug-In:
1. Open the project that is to be used with Source Safe.

2. Click on the "Team|Configure Version Control..." menu item.

3. In the "Select version control system" drop down box, select

4. You must provide the path to the Source Safe executable (SS.EXE)
located in the Source Safe installation directory.

5. You must provide your user id, but the password is only required
if your installation specifies that you use it. If it does, enter
your password and check the box "User ID and password required".

NOTE: If you do not specify the password and check the box and
your installation requires authentication, you WILL hang
JBuilder because the Source Safe Executable will be
waiting for you to manually enter a user id and password.
However, since this is a background process you will not
be able to do it (apparently the -I- option doesn't really
ignore all prompts).

6. Map the Source Safe projects to your working directories by clicking
the "Add" button. You will be presented with a Source Safe project
browser and a local directory browser. Simply select the project and
working directory and click the map button. If you need to create a
new project directory in Source Safe simply right-click a project
folder and you will be presented with a menu option to create a new
project. The new project will be created as a sub-project of the one
that was right-clicked on. You may also create a new project at any
time within JBuilder after configuring Source Safe, by selecting the
"Create project" menu item from the "Team" menu.

NOTE: If your Source Safe project has the same directory structure as
your project, you only need to map the highest level directory
For example:

Here is the Source Safe project structure:

Here is local structure:

You would only need to map "$/ssproject" to C:\Projects\myproject"

If you had the code for "subproj2" in a different directory say
"C:\Projects\subproj2". You could also provide the mapping:
"$/ssproject/subproj1/subproj2 to C:\Projects\subproj2"

You CAN map the same Source Safe project to multiple local
directories, but you CANNOT map multiple local directories to
more than one Source Safe project.

7. Specify the number of past revisions that you wish to see on the
History pane starting with the most recent. If you want to see all
revisons just put in a large number like 9999. The default is 5.

8. Select whether or not you want the Source Safe commands to be output
to the console. This is very useful to see what command is being
executed in case something isn't working as you expect it to. You
should be able to cut the command and run it at a command prompt to
see what errors or prompts Source Safe is producing. Some commands
are generated in a batch file that you should be able to look at.

9. Click the OK button after you configured all of the Source Safe

10. When you right click on a file in your project, you will be presented
with a new context menu option ("Microsoft Source Safe"). When
highlighted, the menu will display a list of available Source Safe
options for the selected file. An option will only be enabled if it is
available. (ie. You won't be able to check in the file if it is not
checked out by you, or add a file if it is already in Source Safe).

NOTE: If you have not configured Source Safe correctly, the menu
option will be grayed out. This means that you have left out
either the path to the SS.EXE executable, the user id, or the
password, if authentication is required,

Available options are:

"Add" - Add the file to mapped Source Safe project
You will be presented with a dialog to allow you to supply a
comment, immediately checkout the file after adding it, remove
the local copy, and/or leave the file writable.

"Checkout" - Checkout the file from the mapped Source Safe project
You will be presented with a dialog to allow you to supply a
comment and/or prevent a local copy from being obtained.

"Checkin" - Check the file into the mapped Source Safe project
You will be presented with a dialog to allow you to supply a
comment, keep the file checked out, remove the local copy,
and/or leave the file writable.

"Undo Checkout" - Undo the check out of the file
You will be presented with a dialog to resolve the local copy of
the file (Leave it, replace it, or delete it).

"Get" - Get the file from the mapped Source Safe Project
You will be presented with a dialog to allow you to make the file

"Status" - Displays the status of the file.
Shows whether the file is checked out by you or any one else,
whether your local version is different from the Source Safe
version, or if it's a new file.

11. Revison History and File Differencing option are available through the
History tab of the editor pane. It will show you the last number of
revisions that you have asked to see from the configuration panel. You
will then be able to view the source for prior revisions and do visual
differencing between the revisions.

NOTE: Please, be patient when you click on the History tab. This is
not the speediest process especially if the file has many
revisons. Parsing the output that Source Safe produces in
a History command from the command line was not only laborious,
but it was a real nightmare. Try running a History command
from the command line some time to see what I mean.

12. As stated above, you can create a new project folder in Source Safe by
selecting the "Create project folder..." menu item from the "Team" menu
(for information on creating a project see "6." above).

13. Multiple file actions may be performed by selecting more than one file in
the browser pane and right-clicking on any one of the selected files. The
only available option will be the "Multiple File Actions" menu item.
Clicking on this option will present you with a dialog showing
all of the selected files and a best guess at the action to take
for the file based on its current status. You may change the action to
another action by selecting it from the drop-down. If you select "No Action"
for a file, no changes will be made to your local file or the current
version of the file in Source Safe. The other available options (ie, the
Local File option, Writable status, Re-Checkout status, and Comment will be
enabled/changed based on the action that you select. When you have finished
making your selections, press the "Ok" button to process the files. When
the processing is complete, a dialog will be presented showing all of the
actions that occurred.

14. Get or Checkout of a complete project within Source Safe is now
possible. From the "Team" menu, select "Get project files...". You will
be presented with the Source Safe project dialog. Right-click on the
project that you wish to retrieve and select "Get project files...".
From the dialog you must select either "Get" or "Checkout". Optionally,
you can choose to make the files "Writable" or "Recurse" through all
sub-projects as well as add a checkout comment.
NOTE: This can take a while for large projects and I have no progress
indicator in place yet. I have a project of about 3000 files and it
takes about 3 minutes to get all of the files. So if it appears that
JBuilder is locked, it might not be. Just be a little patient.

Changes Since Last Version:

1.0.2 - 1.0.3:
- Added "Get" and "Checkout" for an entire project.

1.0.1 - 1.0.2:
- If JBuilder was installed in a directory other than the default
of "C:\JBuilder". A null pointer exception was occurring because
the plug-in tries to create the log file in the "lib\ext" directory
at that hard-coded location -- a stupid move on my part. It has
been changed to put the log file under the user's home directory.

1.0Beta - 1.0.1:
- Fixed a major bug where an action performed for a file
under Source Safe control was causing a null pointer
exception if it resided under a directory that mapped
directly to a Source Safe project (ie. The file was
under the root mapped directoy and not under a

- Fixed a bug where the check-out menu option erroneously
became enabled if the Source Safe file was checked out
by the user and one or more other users at the same time.

.03 to 1.0Beta :
- Fixed a bug with the configuration pane that caused a lockup when
the user tried to press the "Add" button to create a directory
mapping. This bug occurred if the other settings had not been
firt saved by pressing the "OK" button before the "Add" button.

- The comment text box was not word wrapping on the check-in dialog.
It now has word wrapping.

- All of the dialogs are now modal.

- The Context and Team menus come up about twice as fast now. To
determine the status of a file, I was doing two calls to Source Safe.
One to check whether or not a file is checked out and another to
determine if the local file is different from the current revision.
The call to check for file differences is not necessary for displaying
the menus.

- Added the ability to create a Source Safe project folder from either the
directory mapping dialog or directly from the "Team" menu.

- Added multiple file action capabilities, which can be accessed by
selecting more than one file from the project browser pane and
right-clicking. This involved some pretty extensive modifications. If
I have broken anything that worked before, please let me know.

.02 to .03 :
- Added History and Visual Differencing abilities via the History
tab. You can specify the number of revisions that you want to
see on the configuration panel. I'm sure that this may still have
some bugs (parsing a Microsoft Source Safe History Listing from
the command line is real headache). If you have any problems
with this, please let me know.

- Verified to work with Microsoft Source Safe versions 5.0 and 6.0 on
Windows 98SE and Windows 2000. (If you get it to work on other
versions of Source Safe or Windows, please let me know).

- Fixed some more authentication bugs.

- Added an option on the configuration panel to display the commands
being sent to Microsoft Source Safe. This will help with
debugging. You can now cut the command out and try it at the
command line to see why it is not working.

- Added icons to the menu options.

- From the "Team" menu, you are now able to perform Source Safe
actions on the currently active file in the editor pane.

- Disabled the menu options if the configuration is not set up

- Refreshed the Source Safe project browser everytime the "Add"
button on the configuration panel is clicked instead of only
the first time.

- Fixed a bug that prevented files from being retrieved or checked
in to a directory that resided on a different drive
than where JBuilder was installed (Why, oh why does Microsoft
still insist on using that antiquated drive specification).

.01 to .02 :
- Fixed a bug with authentication

Feature Requests:

I'm always open to adding new features, so if you have any ideas, please let
me know.

However, there are two features that I have had a number of requests to add.
I'll try to explain why they probably won't be able to be included.

1. Feature 1: "Instead of the Multiple File Actions dialog, why don't you
just check every file in the project and show a list of everything that
is either new or changed."

Why this is not likely to be added: In order for me to be able to tell
which files have changed between the project and Source Safe, I need to
do a status on every file of the project. The Source Safe command line
interface is extremely slow and produces output that is in a terrible
format for programs to use (ie. it requires major String parsing to be
usable). This translates into overhead -- and lots of it. If you
noticed the 1 to 3 second lag that it takes to show the Source Safe
context menu, it's because I am doing a "Status" command to determine
which menu options to enable and disable. Multiply that lag by every
file in your project and that is how long you would need to wait. So
a project with 100 files in it would have a wait time of about 1.5 to
4 minutes just for the dialog to appear. This defeats the purpose of
the plug-in which was to save some development time, not add to it.

2. Feature 2: "Can't you change the icon in the project to show that it is
checked out by the user or a new file to Source Safe".

Why this is not likely to be added: It is relatively easy for me to
change the icon. That is not a problem. However, the problem occurs
because the user always has the option of swapping over to Source Safe
and performing file actions or shutting down JBuilder and coming back
later. It becomes almost impossible to keep the file changes in sync.
The only way to "re-sync" the changes would be to do a "Status" command
on every file in the project, but this presents the same performance
problem as listed in number "1." above.


If you have any questions/comments please e-mail me at

For more information, see

   Latest Comments  View All Add New

Move mouse over comment to see the full text

Could not retrieve comments. Please try again later.

Server Response from: ETNACDC03