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

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

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2006-05-12 21:06:36 CEST

Martyn Dodsworth wrote:

> 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.

on the left side is the 'older' file, on the right side the 'newer' one.
The working copy file is not always the 'newer' one (it is when
comparing to BASE).

> 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.

No modifications on the server, but local modifications:
--> compare working copy to BASE
working copy is newer than BASE, so BASE is left and WC is right.

> 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!

No local modifications, but modifications on the server:
--> compare server file to WC (or BASE, in that case it's the same)
server is newer than WC, so server is right, WC is left.

> 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.

For diffing, there actually is no "mine" or "yours/theirs". Those names
only apply to three way diffing (aka merging). For diffing two files,
there's only 'older' and 'newer'.

> I realise WinMerge less suitable for an external 3-way Merge tool,

"less" suitable? Last time I checked, WinMerge couldn't do 3-way merges.
And it can't apply patchfiles either.

> 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,

TSVN sets the readonly flag for files which shouldn't be modified (e.g.
temporary files which are fetched from the server). Does WinMerge ignore
that? If it does, you should complain about that on their mailing list.


   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
To unsubscribe, e-mail: users-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: users-help@tortoisesvn.tigris.org
Received on Fri May 12 21:06:49 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.