Page 1 of 2

CodeCompare always starts in standalone mode

Posted: Mon 05 Mar 2012 12:37
by StefanEgo
Hi,

I'm just evaluating CodeCompare on my machine and have some problems getting it to start in non-standalone mode.

We'r using TortoiseSVN + VisualSVN and Visual Studio 2010 (SP1).

The installation succeeded without problems, but when I choose "Show Difference" in the VS' right-click-context menu, Code Compare is started in standalone mode, rather than as a VS addin.

I also tried to change the following entry, as pointed out in the help without much success:
Tortoise SVN settings (64-bit) => External Programs => Diff Viewer =>
adding "/environment=visualstudio" at the end of the command line used for the diff viewer, so the line currently looks like this for me:

"C:\Program Files\Devart\Code Compare\CodeCompare.exe" /SC=SVN /B %base %mine /environment=visualstudio

Any suggestion/idea what I did wrong?

Posted: Tue 06 Mar 2012 12:53
by Artem
There is really a bug impeding Code Compare to run Visual Studio for comparison on 64-bit systems. That will be fixed in the next version. Note that some of the TortoiseSVN dialogs block Visual Studio, therefore the comparison won't be able to open in the same Visual Studio instance even after the fix, i.e. when specifying simultaneously the /blocked and the /environment=visualstudio options, a separate Visual Studio instance will run for comparison.

Posted: Mon 12 Mar 2012 13:19
by geargfi
Artem wrote:There is really a bug impeding Code Compare to run Visual Studio for comparison on 64-bit systems. That will be fixed in the next version. Note that some of the TortoiseSVN dialogs block Visual Studio, therefore the comparison won't be able to open in the same Visual Studio instance even after the fix, i.e. when specifying simultaneously the /blocked and the /environment=visualstudio options, a separate Visual Studio instance will run for comparison.
Hi there,
Do you know when this version will be available ?

Posted: Wed 14 Mar 2012 15:13
by Artem
The build with this fix will be available tomorrow.

Posted: Fri 16 Mar 2012 15:14
by StefanEgo
I can confirm that with the latest version (2.70.7) CodeCompare opens in VS, when I specify "/environment=visualstudio" in the command line in the TSVN config setting.

However, it's being opened in a separate instance of VS 2010. I suspect that this is the case which you've mentioned:
Note that some of the TortoiseSVN dialogs block Visual Studio, therefore the comparison won't be able to open in the same Visual Studio instance even after the fix, i.e. when specifying simultaneously the /blocked and the /environment=visualstudio options, a separate Visual Studio instance will run for comparison.
Note that in my case I do not have any visible TSVN dialog open when trying to compare files. I just right-click on a modified file in VS and select the VisualSVN option "ShowDifference". The resulting compare window is then opened in a new instance of VS.

Is there something I as a user can do about that?
Is that something which can only be "fixed" in TSVN?
Is that something which can (and will?) be fixed in CodeCompare?
Is that something which needs to be "fixed" in VisualSVN?

Regards,
Stefan

Posted: Fri 16 Mar 2012 16:22
by Artem
You can omit the /blocked argument. If Visual Studio is not blocked, comparison opens successfully, otherwise you get the timeout message.

Posted: Tue 20 Mar 2012 12:25
by StefanEgo
The command line specified in TSVN's config setting looks like this for me:
DiffViewer: "D:\Program Files\Devart\Code Compare\CodeCompare.exe" /SC=SVN /B %base %mine
Merge Tool: "D:\Program Files\Devart\Code Compare\CodeMerge.exe" /TF=%theirs /MF=%mine /RF=%merged /BF=%base /REMOVEFILES /SC=SVN /B

As you can see the blocked-parameter is not specified. (I also tried adding that to the command line, which didn't make any difference in the behavior I'm observing here).
Also note that I'm not seeing/getting any timeout message at all.

Posted: Tue 20 Mar 2012 13:03
by Artem
/b is an abbreviation of the /blocked parameter.

Posted: Tue 20 Mar 2012 13:24
by StefanEgo
I've removed the /B from the command line and the outcome is that Code Compare is opened in standalone-mode now. No timeout window/message is displayed (at least I don't see any).

Posted: Tue 20 Mar 2012 13:59
by Artem
It is very strange, because, if you open comparison within Visual Studio, and there is no /environment=standalone or /blocked parameter specified, the comparison should be opened in the same Visual Studio.

Posted: Wed 21 Mar 2012 12:59
by StefanEgo
Any further ideas how I could actually trace that down and/or help you to identify the underlying problem why the behavior differs on my machine from what ur expecting?

Posted: Wed 21 Mar 2012 14:40
by Artem
We tried to reproduce this issue in the following test environment:
  1. Visual Studio 2010 Ultimate
  2. TortoiseSVN 1.7.5 (64 bit)
  3. VisualSVN 2.5.3
  4. Code Compare 2.70.7
  5. Diff Viewer: "C:\Program Files\Devart\Code Compare\CodeCompare.exe" /SC=SVN %base %mine
When "Show Difference" is chosen in the Solution Explorer, the comparison opens in the same Visual Studio.
Let us know if there are any additional details concerning your configuration. In addition, try to specify /environment=visualstudio.

Posted: Wed 21 Mar 2012 14:54
by StefanEgo
That case actually seems to work (I cannot reproduce it any longer here).
However, the following steps still open up CodeCompare in standalone mode or (if I specify /environment=visualstudio) in a new instance of VS.

1. make any change to a file.
2. Open up the TSVN commit dialog via: VisualSVN -> Commit
3. double-click on the modified file in the TSVN dialog to bring up code compare

Posted: Wed 21 Mar 2012 16:47
by Artem
This is what I mentioned above - VisualSVN locks Visual Studio. You can click somewhere in Visual Studio window, and in that case ViusalSVN shows you the warning dialog, where you can unlock Visual Studio.

Posted: Thu 22 Mar 2012 09:29
by StefanEgo
The difference here is that in my case CodeCompare is opened in standalone mode in the described case rather than displaying the mentioned timeout message, which I would expect.
otherwise you get the timeout message.