Where is the Merge Result file stored?

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

Locked
stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

Where is the Merge Result file stored?

Post by stevek2 » Fri Jan 12, 2007 2:41 pm

I have a question about how Vault handles the Merge Result file when performing a merge. I did Merge Branches, with Automatic Merge requested, and now I have a bunch of files in Pending Changes. When I select 'Show Merge', I would assume that SGDM is invoked with the /result file (ie, the Merge Result file) being the local file in my working directory. However, sometimes it is, and sometimes it's a temp file in %AppData%. It is pretty confusing because when I make changes using SGDM and select 'Save', the changes get saved to the temp file, not to my local copy. Apparently the local copy doesn't get updated until I actually do a checkin...which means that I can't actually _compile_ the file to test it until I first check it back in, which doesn't work for me.

Is there something I'm missing?

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Mon Jan 15, 2007 3:02 pm

Are any of the merges involving adding new files? That's the case, those won't show in your working folder first. I believe the file changes for an individual file that already existed and was merged should appear in the working folder. I'm checking into this more.

stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

Post by stevek2 » Mon Jan 15, 2007 3:04 pm

There were files added in the merge, but those were already checked in; the files I am referring to were pre-existing and had changes from the merge.

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Mon Jan 15, 2007 4:49 pm

I ran a test and found my changes in the working folders as well after I had went through the merge, but before I checked the file in. Can you show me some screenshots that show what's going on in your case? Are you maybe not getting completely through the merge? We may have done different things as well so that I'm not showing the same result. If you prefer to send those screenshots instead of posting, send an email to support at sourcegear.com (attn: Beth).

stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

Requested example

Post by stevek2 » Mon Jan 22, 2007 8:18 pm

Here's some more info on an example that I saw today:

I performed a merge (using an external merge utility, Araxis Merge), and then saved my merge result & exited the merge tool. When I went to compile the resulting file, my changes weren't there. So I performed 'Show Merge' again and it appears that Vault is passing Araxis Merge a temp filename as the %DEST_PATH%, rather than the file in my working directory.

In the Tools->Options->Diff/Merge pane, I have the following configuration:

Program:
C:\Program Files\Araxis\Araxis Merge v6.5\compare.exe

Arguments:
/wait /3 /a2 /title1:"%WORKING_LABEL%" /title2:"%DEST_LABEL%" /title3:"%OTHER_LABEL%" "%WORKING_PATH%" "%BASELINE_PATH%" "%OTHER_PATH%" "%DEST_PATH%"

and when I use Process Explorer to display the command line that Vault actually used, I get the following (line feeds inserted):

"C:\Program Files\Araxis\Araxis Merge v6.5\compare.exe"
/wait /3 /a2 /title1:"Target File" /title2:"Merge Result" /title3:"Origin File"
"C:\Users\stevek\AppData\Local\Temp\tmpC6FC.tmp"
"C:\Users\stevek\AppData\Local\SourceGear\Vault_1\Client\9E3E77FA-7DE0-4CF9-BDE8-F763F6F6F261\stevek\_sgvault\1542926855\19334_mb_baseline"
"C:\Users\stevek\AppData\Local\SourceGear\Vault_1\Client\9E3E77FA-7DE0-4CF9-BDE8-F763F6F6F261\stevek\_sgvault\1542926855\19334_mb_patches"
"C:\Users\stevek\AppData\Local\SourceGear\Vault_1\Client\9E3E77FA-7DE0-4CF9-BDE8-F763F6F6F261\stevek\_sgvault\1542926855\19334_undo"

It seems that for %DEST_PATH%, Vault is supply this "undo" file. Why???

Also, I don't know if this is relevant, but I notice that when Vault is configured for an extern Merge tool, it never prompts "Do you want to resolve the Merge Status?", like it did when I was using the default SGDM. Is Vault playing some games where it only copies my merge result into the working directory when I resolve the merge??

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Wed Jan 24, 2007 4:57 pm

We haven't tested Vault with Araxis, but only with our own merge tool. There could be some difference with how Araxis works.

Generally, with our own merge tool, Vault first copies the files to a temp directory and then the merge result after the merge is done, but before it's committed, is copied to the working directory.

I'll have to download this when I can and try this out and can get back to you then.

stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

Post by stevek2 » Wed Jan 24, 2007 5:29 pm

I don't think you need to worry about Araxis. I copied the command lines involved because it shows that Vault is supplying a temp file for %DEST_PATH%. Just treat whatever Araxis does as a black box, and look at how Vault is expanding the %% variables in the command line. If the intention is that Vault will have SGDM or whatever merge program write to the temp file, then in my experience there are times Vault doesn't write this temp file back to the working directory.

Under what cases will Vault supply the local file in the working directory for %DEST_PATH, and under what cases does it supply a temp file? I have seen both cases. And then there's the question of whether Vault _always_ copies the temp file to the working directory, or not. The fact that the temp file is named "12345_undo" seems to indicate to me that Vault is not planning to write it back, with a name like 'undo'.

And there's also my question regarding 'do you want to resolve the merge status', which is also independent of Araxis.

Thanks,
Steve

Locked