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

Re: UltraCompare: 3rd Party Diff Tool

From: Eric Stegemoller <estegemoller_at_idmcomp.com>
Date: Mon, 03 Aug 2009 10:15:12 -0400

Hello Simon,

We have recently implemented changes to UC to allow TortoiseSVN to use
UC as its Diff tool. We have added -title1, -title2, -title3 switches to
UC to make setting titles easier for our users. Users need to enter the
following string into the TortoiseSVN external diff tool configuration box:
   
     "<installdir>\uc.exe "%base" "%mine" -title1 "%bname" -title2 "%yname""

This way the base file and user's file will be compared and the titles
for each will be displayed in place of the paths. <installdir" is
obviously the path to the their UC install. It is also best that they
put quotes around %base, %mine, %bname, %yname to help ensure the
strings here will be parsed correctly.

We will be beta testing these changes soon and they will be shipping
with our v6.4 release. If you would like to test out these changes
yourself I can arrange for you to receive a free copy. If you approve of
what we have done here then we would greatly appreciate it if you added
this to your documentation.

Thank you,

Eric

Simon Large wrote:
> 2009/5/18 Eric Stegemoller <estegemoller_at_idmcomp.com>:
>
>> Hello Simon,
>>
>
> Hi Eric,
>
> Thanks for taking this up. I have copied this to the TortoiseSVN
> developers mailing list so that others can participate in the
> discussion. You can subscribe to the list by sending an email to
> dev-subscribe_at_tortoisesvn.tigris.org. Or just ask responders to copy
> to your email address.
>
>
>> Sometime ago you had contacted IDM Computer Solutions about adding support
>> to UltraCompare for providing view titles for temporary files when SVN
>> invokes UltraCompare to perform a difference comparison. I have included the
>> original message at the bottom of this message. We wish to include this and
>> more into our next release of UltraCompare. Our goal is to offer full
>> support for UltraCompare-SVN integration to our users. In order to do this
>> we need to know more about the command line that SVN passes to UltraCompare.
>> Perhaps the following questions will help us move in the right direction:
>>
>
> First off, I should say that this is specifically for TortoiseSVN
> which is a Windows client for SVN, and probably the most popular
> Windows client, but it's not the only one. Other SVN clients will have
> different ways of integrating external diff tools.
>
>
>> 1.) Do you have any switches that you pass and if so what is their meaning
>> and purpose?
>>
>
> The interface to external tools is user-defined in TortoiseSVN. We
> can't expect other tools to change to a fixed format, so we provide a
> way to use as many switches as the external tool provides. The user
> defines a command line that will be sent to the tool, which can
> include any tool-specific switches. Certain parameters in that
> definition like %base will be substituted at call time with real data.
>
>
>> 2.) From your documentation I assume %base and %mine are the repository
>> version of the file and local version of the file respectively. Are they
>> passed in this order? Also, is there a convention to the order in which
>> things are passed ie. filenames, switches etc?
>>
>
> %base is the original version as it existed in the repository before I
> started editing. %mine is the local version as it is now after I have
> made some changes. They are passed in the order the user specifies in
> his command line definition. If you need them in a specific order then
> we can add that to the examples in our docs.
>
>
>> 3.) What syntactical conventions do you use for quotes, spaces etc.?
>>
>
> Good question. I think filenames end up being quoted, and I remember
> seeing a post on this just a few days ago, but can I find it now?
> Stefan - how does the quoting work and are there any tricky edge
> cases?
>
>
>> 4.) For "View Title" names how do you specify what is the file path name and
>> what is the "View Title" name? Do you use a special separator character?
>> What are the conventions here? (I see you discussed this in the original
>> message. Is this still the case?)
>>
>
> That's up to you. You implemented it in the last release using a
> semicolon between the filename and view title and I explained why that
> would not work (problems with quoting, and semicolon is also a legal
> filename character). I suggest adding separate switches to introduce
> the titles.
>
>
>> 5.) Do you ever send more than two files for comparison at a time? If so how
>> is this information passed?
>>
>
> There can be 4 files if you are viewing merge results, but
> 1. The common ancestor (base)
> 2. The file with my changes (mine)
> 3. The file from the repository with changes I want to merge (theirs)
> 4. The resultant merged file
> But unless you already support merging in this way I suggest sticking
> to the 2-way diff.
>
>
>> 6.) I see that SVN creates a temp file locally to represent the file from
>> the repository. Should we allow users to edit this or is it intended purely
>> for the sake of comparison? (I assume it is).
>>
>
> It depends how you invoke the diff tool. If you compare 2 files in the
> repository then you have 2 temp files. If you compare a file against
> its BASE version then neither is a temp file. The BASE file in a
> subversion working copy is read-only and must never be edited, but it
> is useful to be able to edit the file in your working copy. I'm not
> sure whether we set the temp files to be read-only, but we could do
> so. In that case you could assume that if a file is writeable then it
> is editable.
>
>
>> 7.) Some of our users have reported that other diff applications have
>> options that when enabled will automatically configure SVN to use the
>> application. If this is something that SVN supports what is the method for
>> doing this. Is this something that is passed on the command line or does it
>> require editing a configuration setting programmatically?
>>
>
> That's not something I have heard of, and we don't generally do
> automatic changes - people don't like surprises ;-)
>
>
>> 8.) Are there any upcoming changes to SVN that will affect any of this?
>>
>
> I don't think so.
>
>
>> If there exists documentation that already covers these questions, I
>> apologize and request that you please let me know where I can find this. Any
>> assistance you can offer will be greatly appreciated.
>>
>
> The current docs are online, the relevant section being at
>
> http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-progs
>
> Simon
>
>
>> Thank you,
>> Eric Stegemoller
>>
>>
>>> I am the principal doc writer for the TortoiseSVN Windows Subversion
>>> client. TortoiseSVN is able to invoke 3rd party diff tools to compare
>>> different revisions of the same file. We can already do this with UC
>>> as it has a command line interface, but what we cannot yet do is set a
>>> view title over each of the files because UC does not support view
>>> titles.
>>>
>>> For version control systems the filenames will often be temp files
>>> somewhere deep in the Windows temp file area, and the filename will
>>> not indicate what the file actually is. Fo for example if I want to
>>> compare my current working copy version with what is in the
>>> repository, my view titles would be "test.txt : revision 100" and
>>> "test.txt : working copy". Or if comparing 2 revisions from the
>>> repository then we indicate the repository path and revision, so
>>> something like "svn://svn.domain.com/trunk/doc/preface.xml : revision
>>> 100" and "svn://svn.domain.com/trunk/doc/preface.xml : revision 98"
>>>
>>> The content of the pane title is generated by the calling app and
>>> passed on the command line, e.g. uc "C:\projects\test\test.txt" -t1
>>> "text.txt : working copy" "C:\temp\test.txt.r100.tmp" -t2 "test.txt :
>>> revision 100"
>>>
>>> I guess in this instance the filename bar and open/close icons are
>>> redundant so you could use the logic that if a title is supplied on
>>> the command line, a plain text title is used over the pane instead of
>>> the file-open bar.
>>>
>>> In return, I will add instructions to the TortoiseSVN help file to let
>>> our users know how to configure TSVN to use UC. We already do that for
>>> BeyondCompare, Araxis merge and a few others, and I know UltraEdit is
>>> popular with a lot of our users :-)
>>>
>>> One other thing I forgot to mention. Subversion 1.5 will (hopefully)
>>> be released sometime around the end of May. It has just started its
>>> release cycle which takes a minimum of 4 weeks. Once SVN 1.5 is
>>> released, TSVN 1.5 will follow within a couple of days. It would be
>>> good to get the information in place ready for that release, even if
>>> the UC release which supports it is not out by then. But there will
>>> certainly be bugfix releases after that, and I can add it later.
>>>

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2379536

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-08-03 16:26:50 CEST

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