How to? Problem running Mercurial with Araxis Merge

Sep 27, 2012
Hi everyone,

New user here, though I used to use 4DOS and 4OS2 way, way back in the day. It's good to finally have a real command processor! Unfortunately I have run into a problem that I need to resolve before committing to purchasing TCC.

I run Mercurial here with Araxis merge. When I perform a merge from one branch of the source repository to another, a merge conflict causes Mercurial to invoke Araxis to perform a manual three-way merge.

When running under CMD, Araxis is invoked successfully, but when running under TCC, I get the following output:

c:\source\s>hg me kodiak
merging Common/Classes/GTSOEStatementData.pas
Araxis Merge Command Line Compare Utility v7.0

Not enough arguments for a three-way comparison.
merging Common/Classes/GTSOEStatementData.pas failed!

I believe the filenames look like this:

I tried changing COMSPEC to point to TCC.EXE, but that didn't work. Has anyone else encountered this behavior or can anyone suggest anything? I have the feeling someone will know right away what is wrong.

Thank you for reading,
Hello again,

I discovered that I could work around this issue by setting COMSPEC to CMD.EXE.

FYI, here is the command line that hg.exe is using to launch Araxis, this must be where the problem is:

C:\PROGRA~1\JPSoft\TCMD14~1\TCC.EXE /c ""C:\Program Files\Araxis\Araxis Merge\\ConsoleCompare.exe" /3 /a2 /wait /merge /title1:"Parent 1" /title2:"Merge Result: ""C:\Source\s\Common\SharedForms\SelectItemForm.pas" /title3:"Parent 2" "C:\Source\s\Common\SharedForms\SelectItemForm.pas.orig" "c:\users\drobb\appdata\local\temp\SelectItemForm.pas~base.fmkwps" "c:\users\drobb\appdata\local\temp\SelectItemForm.pas~other.h3miys" "C:\Source\s\Common\SharedForms\SelectItemForm.pas""

Here is the command line that is used when CMD.EXE is invoked:

c:\windows\system32\cmd.exe /c ""C:\Program Files\Araxis\Araxis Merge\\ConsoleCompare.exe" /3 /a2 /wait /merge /title1:"Parent 1" /title2:"Merge Result: ""C:\Source\s\Common\SharedForms\SelectItemForm.pas" /title3:"Parent 2" "C:\Source\s\Common\SharedForms\SelectItemForm.pas.orig" "c:\users\drobb\appdata\local\temp\SelectItemForm.pas~base.hhnp41" "c:\users\drobb\appdata\local\temp\SelectItemForm.pas~other.7ugqhw" "C:\Source\s\Common\SharedForms\SelectItemForm.pas""

The difference must be in the way the quotes are being interpreted on TCC's command line. If I execute the entire command line manually from a TCC prompt, the same problem occurs. If I execute the second command from a TCC prompt, it works.

If I exclude the launching of the shell, i.e. executing just this command line:

c:\source\s>"C:\Program Files\Araxis\Araxis Merge\\ConsoleCompare.exe" /3 /a2 /wait /merge /title1:"
Parent 1" /title2:"Merge Result: ""C:\Source\s\Common\SharedForms\SelectItemForm.pas" /title3:"Paren
t 2" "C:\Source\s\Common\SharedForms\SelectItemForm.pas.orig" "c:\users\drobb\appdata\local\temp\Sel
ectItemForm.pas~base.fmkwps" "c:\users\drobb\appdata\local\temp\SelectItemForm.pas~other.h3miys" "C:

... it works in TCC and in CMD.

Thanks for reading! I'll be purchasing soon!

Similar threads