So, I just committed a fix for this problem, but I'm left with additional 
questions.
The 'svn diff -x' feature basically replaces the single hardcoded "-u" 
argument that gets passed to external diff tools with the arguments parsed 
from the value of the -x option.  There may be any number of such arguments. 
    This means that any external diff tool that wants to be robust enough to 
deal with the presence or absence of the -x option to 'svn diff' needs to 
*not* do as most of our sample wrapper scripts do -- looking at args 6 and 7 
to find the diff-able files -- but instead look for those files in the last 
two args regardless of how many args there are:
    $ svn diff --diff-cmd ~/tests/prargs
    Index: COMMITTERS
    ===================================================================
    ARG  0: "/home/cmpilato/tests/prargs"
    ARG  1: "-u"
    ARG  2: "-L"
    ARG  3: "COMMITTERS	(revision 31564)"
    ARG  4: "-L"
    ARG  5: "COMMITTERS	(working copy)"
    ARG  6: ".svn/text-base/COMMITTERS.svn-base"       <--- ok
    ARG  7: "/tmp/svndiff.tmp"                         <--- ok
    $ svn diff --diff-cmd ~/tests/prargs -x "arg1"
    Index: COMMITTERS
    ===================================================================
    ARG  0: "/home/cmpilato/tests/prargs"
    ARG  1: "arg1"
    ARG  2: "-L"
    ARG  3: "COMMITTERS	(revision 31564)"
    ARG  4: "-L"
    ARG  5: "COMMITTERS	(working copy)"
    ARG  6: ".svn/text-base/COMMITTERS.svn-base"       <--- ok
    ARG  7: "/tmp/svndiff.tmp"                         <--- ok
    $ svn diff --diff-cmd ~/tests/prargs -x "arg1 arg2"
    Index: COMMITTERS
    ===================================================================
    ARG  0: "/home/cmpilato/tests/prargs"
    ARG  1: "arg1"
    ARG  2: "arg2"
    ARG  3: "-L"
    ARG  4: "COMMITTERS	(revision 31564)"
    ARG  5: "-L"
    ARG  6: "COMMITTERS	(working copy)"
    ARG  7: ".svn/text-base/COMMITTERS.svn-base"      <-- oops!
    ARG  8: "/tmp/svndiff.tmp"                        <-- oops!
    $
That's an annoyance for those scripts, but I guess we don't have to claim 
backward compatibility when the -x option is present since it is new to 1.5. 
  I won't stop the release on account of this.  Just means there's more work 
for the book authors to do to explain this.
This makes we wonder at another question, though -- if we're already 
dropping the "-u" built-in default argument, why didn't we also go ahead and 
drop the "-L label1 -L label2" arguments?  Is it because those would be 
harder for an external tool to discover, given the parameters it *is* handed?
C. Michael Pilato wrote:
> In addition to this, I believe we have an API violation in the external 
> diff mechanism, as reported by Jens Seidel.  See for more information: 
> http://svn.haxx.se/dev/archive-2008-06/0387.shtml
> 
> 
> Kamesh Jayachandran wrote:
>> Hi All,
>>
>> Build gave the following warning
>> <snip>
>> subversion/libsvn_repos/hooks.c: In function
>> `svn_repos__hooks_start_commit': subversion/libsvn_repos/hooks.c:579:
>> warning: assignment discards qualifiers from pointer target type
>> </snip>
>>
>> This has been fixed in /trunk(r31673) and nominated to 1.5.x by stsp.
>>
>>
>> Ran make check * (FS_TYPE=bdb and fsfs)
>> All tests PASSed.
>> Ran make svnserveautocheck * (FS_TYPE=bdb and fsfs)
>> All tests PASSed.
>> Ran make davautocheck * (FS_TYPE=bdb and fsfs) * (HTTP_LIBRARY=neon).
>> All tests PASSed.
>>
>> Ran make davautocheck * (FS_TYPE=bdb and fsfs) * (HTTP_LIBRARY=serf).
>> Apart from authz_tests.py tests 1 and 12, rest of the other tests have
>> PASSed.
>>
>> +1 to release as serf is still experimental.
>>
>>
>> My signature for subversion-1.5.0-rc10.tar.bz2
>>
>> - 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
> For additional commands, e-mail: dev-help_at_subversion.tigris.org
> 
> 
> 
-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
Received on 2008-06-10 19:15:50 CEST