PDA

View Full Version : problem with VSS checkin


bnl
12-30-2003, 03:10 PM
I'm trying to create a step to checkin any files that have been checked out from sourcesafe.

The step runs through all of the projects in the tree and checks in any files that are checked out.

Then at the very end it prints this:

Project $5.21 has been destroyed, and cannot be rebuilt.
Continue anyway?(Y/N)N

Process completed with exit code 100
12/30/2003 3:01:06 PM: Step 'Checkin Files' failed
12/30/2003 3:01:06 PM: Build ended.

When I run the SSHELPER.exe directly it does the same thing.
sshelper.exe y:\path Checkin "$/Main" -GL"C:\Development\Main" -GWS -GTM -GCK -R -NL -I-N -Yaaa, -W- -C-


When I run the source safe command from a dos prompt it works fine.
"C:\Program Files\Microsoft Visual Studio\Common\VSS\win32\ss.exe" Checkin "$/Main" -GL"C:\Development\Main" -GWS -GTM -GCK -R -NL -I-N -Yaaa, -W- -C-

What is going on here? What extra is sshelper doing that ss.exe isn't? Is there any way to make this task pass without forcing answering yes to the prompt?

kinook
12-30-2003, 04:28 PM
That is strange. The only differences between using the SourceSafe action / SSHELPER and calling ss.exe directly are:

1) By default, they auto-locate the ss.exe to invoke. If you check the 'show command-line' option on the Options tab (for the SourceSafe action), build again, and it is invoking a different ss.exe than your working test, you can override that by explicitly specifying path+filename for ss.exe.

2) Setting the SSDIR environment variable before invoking ss.exe to point it to the correct database. You don't indicate whether you're doing this in the case where you invoke ss.exe directly. If not, your command may be operating on a different database; if you call

SET SSDIR=y:\path

in your Command Prompt before the ss.exe command, that should ensure an equivalent comparison.

3) Setting the current directory to the path in 'Path for local files' field.

bnl
12-30-2003, 04:47 PM
I did set the SSDIR variable before running the ss.exe command.

It is using the proper copy of ss.exe.

If nothing else I will just call ss.exe with a run command step.