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

Re: svn external diff with non-local file fails?

From: Jesse Barnum <wodev_at_360works.com>
Date: 2005-03-25 06:20:46 CET

Thanks for your fast response!

I am just taking the arguments provided by subversion... when I wrote
that the file I was trying to open is
'.svn/tmp/text-base/AdReqDetail.java.svn-base', that is coming from
subversion - I didn't specifically go into that directory. The problem
is that this file1 argument being passed to my shell script is
referencing a non-existent file - when I try to pass it along to
FileMerge, I get an error that it could not be read, and when I look in
that directory after running the diff command, the directory is empty.

Here is the complete list of arguments being passed to my script:

jesse% svn diff --diff-cmd /Users/jesse/.subversion/svndiff -r78
AdReqDetail.java
Index: AdReqDetail.java
===================================================================
---Opening FileMerge---
-u -L AdReqDetail.java (revision 78) -L AdReqDetail.java (working copy)
.svn/tmp/text-base/AdReqDetail.java.svn-base AdReqDetail.java

--Jesse

On Thursday, March 24, 2005, at 11:16 PM, Ben Collins-Sussman wrote:

>
> On Mar 24, 2005, at 9:52 PM, Jesse Barnum wrote:
>>
>> My expectation is that Subversion should copy the necessary revision
>> into that temp folder, and then call my diff utility. Is that how it
>> is intended to work?
>>
>
> I think you misunderstood what was meant when you were told to "write
> a shell wrapper".
>
> It's absolutely none of your business how Subversion works under the
> hood, and you should absolutely not be poking around in the .svn/
> directory, trying to second-guess what Subversion is doing. :-)
>
> What we meant was: write a script which rearranges the arguments
> normally passed to GNU diff into an order that can be passed to
> FileMerge.
>
> It's our fault: we should have documented this in the book, and
> haven't. But if you look at the source code, Subversion is invoking
> external diff programs like this:
>
> diff -u -L leftlabel -L rightlabel file1 file2
>
> All you need to do is write a shell script to rearrange the incoming
> args, and pass the ones you want to FileMerge. Subversion will take
> care of providing file1 and file2 for you.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Mar 25 06:24:05 2005

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

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