[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


We are using TortoiseSVN and Subversion. I'm trying to setup WinMerge as
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
is the right window.

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

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

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

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

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
"%base" to the working copy and the "%mine" to the remote file. Surely
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
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

Red Vision

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.