Can't access diff utility

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
garyb
Posts: 5
Joined: Mon Nov 21, 2005 7:29 am

Can't access diff utility

Post by garyb » Mon Nov 21, 2005 7:48 am

I've installed the client version 3.1.5(3546) on my notebook with no apparent problems. The vault database is accessible and I can successfully check out/in files. The problem arises when I try to use the diff utility. Whenever I try to run it, I get an error message "The Diff utility encountered an error during execution. Please ensure you have the absolute path to the utility or the utility is in your path." I added the location where the sgdm.exe file is stored to the path, but still got the same message. I then used the tools/options/diff merge to set the absolute path for both diff and merge. I still get the same error message. I uninstalled and reinstalled, but no difference utility. The diff utility does work when I view the file history and request the difference between two versions of the same file. But I cannot view the difference between the current version in the repository and the version of the file in my working directory. I would sure appreciate some help with this.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Mon Nov 21, 2005 9:25 am

Can you provide the path you copied into the Diff/Merge box? Maybe a screenshot would help.

Also, if you copy and paste that into a command window, does it recognize the diff tool?

garyb
Posts: 5
Joined: Mon Nov 21, 2005 7:29 am

Post by garyb » Mon Nov 21, 2005 10:01 am

I am currently using the default values in the dialog box. That is, %VAULT_EXE_DIR%/sgdm.exe. I also noticed that if I change the value in the dialog box to something obviously incorrect, then I get a different error message. For example, I changed %VAULT_EXE_DIR%/sgdm.exe to %VAULT_EXE_DIR%/xxxx.exe. Then, when I attempt the difference operation, I get "Diff application c:\program files\sourcegear\vault client/xxxx.exe could not be found.

garyb
Posts: 5
Joined: Mon Nov 21, 2005 7:29 am

Post by garyb » Mon Nov 21, 2005 10:10 am

I should have mentioned before that when I select the difference operation, I get the Show Differences dialog box. I leave the selections unchanged and press OK. It is then when I got the original error. When I changed the executanle name, I get the second error immediately.

One other thing...I also noticed that when I changed sgdm.exe to xxxx.exe and then logged into vault on another workstation under my user name and attempted a difference on the that workstation, I then got the same error as I got on the first workstation. It seems that this path information is stored in the repository rather than at the workstation as I would expect. The working path is correctly stored at the workatation, but this execution path is not.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Mon Nov 21, 2005 10:17 am

Yes, the diff path is stored on the repository, which is a bug that we have logged. It should be stored on the workstation itself.

It sounds like there might be a problem simply invoking sgdm.exe. Go to the sgdm.exe folder and invoke the program with 2 test files, and see whether it comes up correctly.

garyb
Posts: 5
Joined: Mon Nov 21, 2005 7:29 am

Post by garyb » Mon Nov 21, 2005 10:55 am

I went to the c:\program files\sourcegear\vault client directory and entered a command sgdm "c:\project\....first file" "c:\project\secondfile" and the utility gui appeared with the two files. Both of the files that I specified are in my working directory. sgdm appears to work from the command line.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Mon Nov 21, 2005 2:13 pm

Can you paste here the full text (both program and arguments) being used to specify the diff tool in the options dialog?

garyb
Posts: 5
Joined: Mon Nov 21, 2005 7:29 am

Post by garyb » Tue Nov 22, 2005 6:29 am

Program: %VAULT_EXE_DIR%/sgdm.exe

Arguments: /ro1 /ro2 /title1:"%LEFT_LABEL%" /title2:"%RIGHT_LABEL%" "%LEFT_PATH%" "%RIGHT_PATH%"

Please note that these values are unchanged from the default values established during installation.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Tue Nov 22, 2005 2:44 pm

It doesn't look like this will be solved without seeing exactly what Vault is doing. Send me an email, and I'll send out a special debug build that will log more details on how the diff program is being called.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Wed Dec 07, 2005 10:56 am

We finally found a workaround for this, but not yet a solution.

Gary's config somehow limits the number of characters supplied by arguments when starting a new process. Vault was invoking the diff tool with a very long string of arguments, because the Vault path was deep and the state folder location was also very deep, and this was causing the diff tool to fail when being invoked.

The workaround is to remove the /title1 and /title2 arguments when specifying the diff tool args in Tools->Options->Diff/Merge, which reduces the number of characters being sent as arguments. It won't show nice titles on top of the files being diffed, but it does come up everytime.

I'm pasting Gary's configuration below. It isn't clear why this would show up on his laptop and no where else, but if anyone else runs into it, let us know, and also try the workaround.

Vault Client Version: 3.1.5.3546
.Net Framework Version: 1.1.4322.573
Operating System: Microsoft Windows XP Professional
Service Pack: 2.0
OS Version: 5.1.2600
Total Physical Memory: 1.25 GB

Post Reply