[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Check for modifications dialog - external diff tool parameters (WinMerge).

From: Martyn Dodsworth <md_at_redvision.co.uk>
Date: 2006-05-11 13:20:57 CEST

Hi,

We are using TortoiseSVN and Subversion. I'm trying to setup WinMerge as
an
external tool. It's working mostly as expected, but I'm seeing odd
behaviour when
external *diff* (not merge) gets launched from the "check for
modifications" dialog
(details below). I couldn't find anything about this (fairly specific
case) on the
mailing list archives.

We are running Subversion server v1.3.0, hosted on a Windows Server. We
use the
TortoiseSVN windows client, v1.3.2 (Build 5840 - 32 Bit) on WinXP dev
PC's. We are
using WinMerge v2.4.6.0.

I would like to rely on the "working copy" being on the right side and
the "remote"
or "base" being on the left side window. Then I can make the non-working
copy window
read-only (using the WinMerge -wl switch). This is arbitrary, and we
might equally try to set them up the other way round.

For External Diff, I've set the command line to:
C:\Program Files\WinMerge\WinMerge.exe -e -ub -dl %bname -dr %yname
%base %mine

For External Merge, the command line is:
C:\Program Files\WinMerge\WinMerge.exe -e -ub -dl %tname -dr %yname
%theirs %mine

So a SVN diff on a file launches WinMerge - base is the left and working
copy
is the right window.

The thing that's puzzling me, occurs in the "check for modifications"
dialog:

1. If "Text status" is "modified" and "Remote text status" - doing
"compare with
working copy" triggers external *Merge*. WinMerge fires up, with "remote
file"
on the left & "working copy" on the right - as expected.

2. If "Text status" is "normal" and "Remote text status" is "modified" -
doing
"compare with working copy" triggers external *Diff*. Winmerge fires up,
with
"remote file" on the *right* & "working copy" on the *left* - not
expected!

So I'm wondering why the second case gets the files the opposite way
round?

It seems odd, as it fires up the external *diff*, which is set to put
"%base" on the left and "%mine" on the right. But Tortoise seems to be
setting
"%base" to the working copy and the "%mine" to the remote file. Surely
"%mine"
should always be set to the working copy? (And "%base" in this case
should be the
remote file). Obviously I can't use the "%theirs" variable, as it's not
valid
in the Diff context.

I realise WinMerge less suitable for an external 3-way Merge tool, but
my issue is
when its fired up as external Diff - not Merge. It's not a serious
issue, but makes
things confusing when remote and local are swapped round, depending on
the status!

This does seem to be a TortoiseSVN issue, rather than WinMerge, since
it's a matter
of how the "%base" and "%mine" params are being filled out. Maybe the
diff command
line could have an "%other" variable, which was set to base or remote,
depending on
the circumstances?

Apologies for the long email, but it's quite a specific case.
Has anyone else seen this?
Thanks in advance,

Martyn Dodsworth
Email - md<at>redvision<dot>co<dot>uk

Programmer
Red Vision
Manchester
UK

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: users-help@tortoisesvn.tigris.org
Received on Thu May 11 15:15:36 2006

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.