## C# API To get Diff btwn Current and Previous Check in

Post your questions regarding using the Vault and Fortress API in your programs.

Moderator: SourceGear

 jclausius Posts: 3486Joined: Tue Dec 16, 2003 1:17 pmLocation: SourceGear Posted: Tue May 03, 2016 7:58 am ejhansen71 wrote:how do I actually get the diff?The answer to this will depend on what diff utility you are using.If you are using Vault's DiffMerge or SourceGear's full blown DiffMerge utility, try adding the '{-d | -diff}="\\path\to\diff\output.diff" ' to the Diff process's arguments For example, '-d="C:\Temp\output.diff"'If you are using a different diff utility, refer to its documentation regarding outputting the diff to a file. Jeff Clausius SourceGear
 ejhansen71 Posts: 58Joined: Thu Nov 13, 2014 10:12 amLocation: Lake in the Hills, IL Posted: Tue May 03, 2016 2:38 pm I never get a file with differences. Can you find a problem with my code?"plink.exe -P 44022 ehansen@ghelsiapp \"DIFF -repository \"Chicago\" -vaultdiff_options \"{-diff=\"J:\\vault\\logs\\test.test.diff\"}\" -compareto lastget \"$/DATAOps/custom/test.test\"\""Breaks down to :DIFF -repository "Chicago" -vaultdiff_options "{-diff=\"J:\\vault\\logs\\test.test.diff\"}" -compareto lastget "$/DATAOps/custom/test.test" True Return code = 0This would mean that the files are identicalHowever, all three items below are different. I've tried lastget, current and repositoryLatest Version: $/DATAOps/custom/test.test = "Testing this FIle Is it different than the laST?"Previous Version:$/DATAOps/custom/test.test = "Testing this FIle"Working File: \\ghprodetl1\DATAOps\custom\test.test = " WRONG Testing this FIle" <--Made change to this to see if current or repository would work. I even tried the C# API ProcessCommandDiff() method. It kept failing complaining that the right file was null no matter what compareTo object I passed. Even the ones that didn't need a right file. I know this only because I copied out the method and its supporting methods into my program so I could trace the problem. Interstingly, we set up an environment variable on all the servers to point to sgdm.exe and in the C# API, it tried to set the program using the environment variable and failed. After the third attempt, I gave up and went back to command line code. Thanks!Eric
 jclausius Posts: 3486Joined: Tue Dec 16, 2003 1:17 pmLocation: SourceGear Posted: Tue May 03, 2016 3:12 pm Sorry for the confusion. The curly braces you see around the diff argument are not a part of the command. It was there to merely point out you could use -d or -diff for the argument. In the command you provided:-diff optionCode: Select allDIFF -repository "Chicago" -vaultdiff_options "-diff=\"J:\\vault\\logs\\test.test.diff\"" -compareto lastget "$/DATAOps/custom/test.test"or you could do-d optionCode: Select allDIFF -repository "Chicago" -vaultdiff_options "-d=\"J:\\vault\\logs\\test.test.diff\"" -compareto lastget "$/DATAOps/custom/test.test" Jeff Clausius SourceGear
 ejhansen71 Posts: 58Joined: Thu Nov 13, 2014 10:12 amLocation: Lake in the Hills, IL Posted: Tue May 03, 2016 3:49 pm Corrected the code. It still always results in "True" with exit code of 0 showing no differences. DIFF -repository \"NZLoad\" -vaultdiff_options \"-diff=\"J:\\vault\\logs\\test.diff\" -compareto lastget \"\$/ntzload/test.txt\"test.txt is different from current to lastget.I set the working folderI did a GetLatest on test.txt to the workingfolderI make a change in development to test.txt and check it inI do a second GetLatest to the working folderI attempt the DIFF with option lastgetI get "True" Error Code = 0 No differences so no output file.I am at a loss. Thanks!Eric
 jclausius Posts: 3486Joined: Tue Dec 16, 2003 1:17 pmLocation: SourceGear Posted: Tue May 03, 2016 4:14 pm You need to control which -compareto operator to use in different situations. In previous posts, you mentioned trying to determine the changes in a GETLABEL vs. the repository, so your choice of compareto of 'lastget' works here.In the last post, "I did a GetLatest on test.txt to the workingfolder". Were there any changes made to the working folder copy? The compareto option using 'lastget' will show differences in the working folder copy and the file at the time of the last GET. Since nothing has changed in the working folder copy, there will be no differences. You could try using compareto of 'current' in this case.Also, from this link http://download.sourcegear.com/misc/vau ... c.htm#DIFF (or running "vault.exe help diff" from the command line) you can see all of the options for '-compareto'. In regards to the initial posts to this thread, have you investigated using the 'label' compareto option? Jeff Clausius SourceGear
 ejhansen71 Posts: 58Joined: Thu Nov 13, 2014 10:12 amLocation: Lake in the Hills, IL Posted: Tue May 31, 2016 8:13 am Just a final update to this. I was unable to make it work with the built-in DIFF tool. Instead, I do a GET to a separate folder and then use a third party DIFF tool to do the work. Thanks!Eric
Previous