Re: Coredump when javahl SVNClient::diff() called with diff-cmd set
On 29.10.2018 10:20, matthew.b...@nats.co.uk wrote: > > On 2018/10/25 11:18:51, Branko Čibej wrote: >> On 25.10.2018 12:41, BURT, Matthew J wrote: >>> Hi, >>> >>> >>> >>> We’ve got a number of developers using the javahl bindings from Eclipse >>> >>> via subclipse. >>> >>> >>> >>> One of them recently reported a coredump against 1.10.3. I’ve also >>> >>> reproduced it with 1.9.7. >>> >>> >>> >>> The problem occurs when SVNClient::diff() is called with a diff-cmd >>> >>> defined in the user’s ~/.subversion/config file. >>> >>> >>> >>> SVNClient::diff() calls svn_client_diff6() with the errstream explicitly >>> >>> set to NULL and the diff command in dwi->diff_cmd. >>> >>> >>> >>> Further down in the code, if diff_content_changed() from >>> >>> subversion/libsvn_client/diff.c is called, the NULL errstream is >>> >>> de-referenced with a call to svn_stream__aprfile(). >>> >>> >>> >>> I’ve put together a simple patch to avoid the null dereference, but I’m >>> >>> not 100% sure this is the correct solution. The code suggests to me that >>> >>> the intention is to allow the errstream parameter for svn_client_diff6() >>> >>> to be set to NULL, but maybe I’m misreading it. >>> >>> >>> >>> Is this the correct approach, and should I submit this patch for >>> >>> consideration? >>> >> The docstring for svn_client_diff7 (..._diff6 was deprecated on trunk) >> doesn't say that outstream or errstream may be NULL; that's pretty >> definitive. This should be fixed in the native JavaHL code; either an >> actual stream should be used such that JavaHL users can read it (in this >> case I suspect that the JavaHL API would have to be upgraded), or a >> stream that ignores all writes should be used. >> >> -- Brane >> >> > OK - that's clear. > > I've replaced both NULL values in the JavaHL code with an svn_stream_empty in > the pool that's in-scope for the call. We've re-tested with Eclipse/subclipse > and it seems to have solved the crash we're seeing. This is on 1.10.3. > > I can submit a patch for trunk if you like, but I note that JavaHL on trunk > is still using ..._diff6. Please do submit a patch against trunk. That JavaHL has not been updated to ..._diff7 is not your problem. :) -- Brane
Re: Coredump when javahl SVNClient::diff() called with diff-cmd set
On 2018/10/25 11:18:51, Branko Čibej wrote: > On 25.10.2018 12:41, BURT, Matthew J wrote: > > > > Hi, > > > > > > > > We’ve got a number of developers using the javahl bindings from Eclipse > > > > via subclipse. > > > > > > > > One of them recently reported a coredump against 1.10.3. I’ve also > > > > reproduced it with 1.9.7. > > > > > > > > The problem occurs when SVNClient::diff() is called with a diff-cmd > > > > defined in the user’s ~/.subversion/config file. > > > > > > > > SVNClient::diff() calls svn_client_diff6() with the errstream explicitly > > > > set to NULL and the diff command in dwi->diff_cmd. > > > > > > > > Further down in the code, if diff_content_changed() from > > > > subversion/libsvn_client/diff.c is called, the NULL errstream is > > > > de-referenced with a call to svn_stream__aprfile(). > > > > > > > > I’ve put together a simple patch to avoid the null dereference, but I’m > > > > not 100% sure this is the correct solution. The code suggests to me that > > > > the intention is to allow the errstream parameter for svn_client_diff6() > > > > to be set to NULL, but maybe I’m misreading it. > > > > > > > > Is this the correct approach, and should I submit this patch for > > > > consideration? > > > > The docstring for svn_client_diff7 (..._diff6 was deprecated on trunk) > doesn't say that outstream or errstream may be NULL; that's pretty > definitive. This should be fixed in the native JavaHL code; either an > actual stream should be used such that JavaHL users can read it (in this > case I suspect that the JavaHL API would have to be upgraded), or a > stream that ignores all writes should be used. > > -- Brane > > OK - that's clear. I've replaced both NULL values in the JavaHL code with an svn_stream_empty in the pool that's in-scope for the call. We've re-tested with Eclipse/subclipse and it seems to have solved the crash we're seeing. This is on 1.10.3. I can submit a patch for trunk if you like, but I note that JavaHL on trunk is still using ..._diff6.
Re: Coredump when javahl SVNClient::diff() called with diff-cmd set
On 25.10.2018 12:41, BURT, Matthew J wrote: > > Hi, > > > > We’ve got a number of developers using the javahl bindings from Eclipse > > via subclipse. > > > > One of them recently reported a coredump against 1.10.3. I’ve also > > reproduced it with 1.9.7. > > > > The problem occurs when SVNClient::diff() is called with a diff-cmd > > defined in the user’s ~/.subversion/config file. > > > > SVNClient::diff() calls svn_client_diff6() with the errstream explicitly > > set to NULL and the diff command in dwi->diff_cmd. > > > > Further down in the code, if diff_content_changed() from > > subversion/libsvn_client/diff.c is called, the NULL errstream is > > de-referenced with a call to svn_stream__aprfile(). > > > > I’ve put together a simple patch to avoid the null dereference, but I’m > > not 100% sure this is the correct solution. The code suggests to me that > > the intention is to allow the errstream parameter for svn_client_diff6() > > to be set to NULL, but maybe I’m misreading it. > > > > Is this the correct approach, and should I submit this patch for > > consideration? > The docstring for svn_client_diff7 (..._diff6 was deprecated on trunk) doesn't say that outstream or errstream may be NULL; that's pretty definitive. This should be fixed in the native JavaHL code; either an actual stream should be used such that JavaHL users can read it (in this case I suspect that the JavaHL API would have to be upgraded), or a stream that ignores all writes should be used. -- Brane
Coredump when javahl SVNClient::diff() called with diff-cmd set
Hi, We've got a number of developers using the javahl bindings from Eclipse via subclipse. One of them recently reported a coredump against 1.10.3. I've also reproduced it with 1.9.7. The problem occurs when SVNClient::diff() is called with a diff-cmd defined in the user's ~/.subversion/config file. SVNClient::diff() calls svn_client_diff6() with the errstream explicitly set to NULL and the diff command in dwi->diff_cmd. Further down in the code, if diff_content_changed() from subversion/libsvn_client/diff.c is called, the NULL errstream is de-referenced with a call to svn_stream__aprfile(). I've put together a simple patch to avoid the null dereference, but I'm not 100% sure this is the correct solution. The code suggests to me that the intention is to allow the errstream parameter for svn_client_diff6() to be set to NULL, but maybe I'm misreading it. Is this the correct approach, and should I submit this patch for consideration? Thanks *** If you are not the intended recipient, please notify our Help Desk at Email information.soluti...@nats.co.uk immediately. You should not copy or use this email or attachment(s) for any purpose nor disclose their contents to any other person. NATS computer systems may be monitored and communications carried on them recorded, to secure the effective operation of the system. Please note that neither NATS nor the sender accepts any responsibility for viruses or any losses caused as a result of viruses and it is your responsibility to scan or otherwise check this email and any attachments. NATS means NATS (En Route) plc (company number: 4129273), NATS (Services) Ltd (company number 4129270), NATSNAV Ltd (company number: 4164590) or NATS Ltd (company number 3155567) or NATS Holdings Ltd (company number 4138218). All companies are registered in England and their registered office is at 4000 Parkway, Whiteley, Fareham, Hampshire, PO15 7FL. ***
Re: Unable to shelve changes when using custom diff-cmd
> Csongor Pal writes: >> When running an svn shelve command I get the diffs opened up in >> FileMerge and the command fails with: svn: E29: No changes were >> shelved > [...] >> I'm using svn, version 1.10.0 (r1827917) on macOS 10.13. Philip Martin wrote: > [...] The long term fix for 1.10 might be to change the Subversion code > so that shelve always runs the internal diff. I have filed this issue as https://issues.apache.org/jira/browse/SVN-4758 and committed a fix in http://svn.apache.org/r1834612 which is nominated for backport to 1.10.x. Thanks for the report. - Julian
Re: Unable to shelve changes when using custom diff-cmd
Csongor Pal writes: > I ran into an issue with svn shelve on my setup. I use the following > script as my diff-cmd to open diffs with FileMerge on macOS: > svn-diffwrap.sh > <https://gist.github.com/dtjm/523243/6975de552166beb08943fe8a44f8b5ddbb29a875#file-svn-diffwrap-sh> > > When running an svn shelve command I get the diffs opened up in > FileMerge and the command fails with: svn: E29: No changes were > shelved > > When I remove the diff-cmd setting from the config file svn shelve > works as expected, but is there a way to have both features work at > the same time? > > I'm using svn, version 1.10.0 (r1827917) on macOS 10.13. The shelve feature in 1.10 relies on a valid diff being written to standard output. If the configured diff_cmd invokes a GUI and doesn't write a diff to stdout then attempts to shelve will fail. Trunk/1.11 doesn't have this problem because the shelve code no longer relies on diff writing to stdout. The long term fix for 1.10 might be to change the Subversion code so that shelve always runs the internal diff. In the short term, a 1.10 user might be able to fix the problem by making the configured diff_cmd detect when output to stdout is required. In this case diff_cmd is a shell script so perhaps using test's -t to determine whether stdout is a terminal would work: if [ -t 1 ] ; then # original script to invoke custom diff ... else # write standard diff to stdout diff "$1" "$2" "$3" "$4" "$5" "$6" "$7" fi That may not work if using some sort of GUI Subversion client which always redirects stdout. In that case a solution might be to make the configured diff_cmd always write a diff to stdout in addition to whatever else it does. -- Philip
Re: Unable to shelve changes when using custom diff-cmd
Branko Čibej wrote on Tue, 26 Jun 2018 12:37 +0200: > It would be helpful if the wrapper script returned the exit code from > the diff program. Something like 'exit $?' at the end would do it. Come again? Appending 'exit $?' to a shell script is a no-op; a script returns the exit code of its last command. [[[ % echo '(exit 42)' | sh; echo $? 42 ]]]
Re: Unable to shelve changes when using custom diff-cmd
On 26.06.2018 12:19, Csongor Pal wrote: > Hi, > > I ran into an issue with svn shelve on my setup. I use the following > script as my diff-cmd to open diffs with FileMerge on > macOS: svn-diffwrap.sh > <https://gist.github.com/dtjm/523243/6975de552166beb08943fe8a44f8b5ddbb29a875#file-svn-diffwrap-sh> > > When running an svn shelve command I get the diffs opened up in > FileMerge and the command fails with: svn: E29: No changes were > shelved > > When I remove the diff-cmd setting from the config file svn shelve > works as expected, but is there a way to have both features work at > the same time? It would be helpful if the wrapper script returned the exit code from the diff program. Something like 'exit $?' at the end would do it. -- Brane
Unable to shelve changes when using custom diff-cmd
Hi, I ran into an issue with svn shelve on my setup. I use the following script as my diff-cmd to open diffs with FileMerge on macOS: svn-diffwrap.sh <https://gist.github.com/dtjm/523243/6975de552166beb08943fe8a44f8b5ddbb29a875#file-svn-diffwrap-sh> When running an svn shelve command I get the diffs opened up in FileMerge and the command fails with: svn: E29: No changes were shelved When I remove the diff-cmd setting from the config file svn shelve works as expected, but is there a way to have both features work at the same time? I'm using svn, version 1.10.0 (r1827917) on macOS 10.13. Thanks, Csongor
Re: svn generates long lists of empty diffs with --diff-cmd
Alexey Neyman wrote on Fri, May 05, 2017 at 08:50:07 -0700: > On 04/20/2017 10:44 PM, Alexey Neyman wrote: > >On 04/20/2017 09:58 PM, Alexey Neyman wrote: > >>No, plain 'svn diff' does not show any differences, not even properties. > >>For example: > >> > >>[aneyman@rhel-build2 src]$ svn diff $URL/SETUP.bash SETUP.bash > >>[aneyman@rhel-build2 src]$ svn diff --diff-cmd=diff $URL/SETUP.bash > >>SETUP.bash > >>Index: SETUP.bash > >>=== > >Some more information: > >- While the properties on the file itself are the same, the inherited > >properties differ (at least, svn:mergeinfo on the parent directory). > >- This behavior is observed on 1.10.0-dev, 1.9.x and 1.8.x. Subversion > >1.7.x does not display these spurious "Index:" lines. > > > So, given the information above, can it be considered a bug/regression? Sure.
Re: svn generates long lists of empty diffs with --diff-cmd
On 04/20/2017 10:44 PM, Alexey Neyman wrote: On 04/20/2017 09:58 PM, Alexey Neyman wrote: On 04/20/2017 06:52 AM, Bert Huijben wrote: -Original Message- From: Alexey Neyman [mailto:sti...@att.net] Sent: donderdag 20 april 2017 02:59 To: users@subversion.apache.org Subject: svn generates long lists of empty diffs with --diff-cmd Hi, I noticed that SVN generates a lot of spurious diffs when using a --diff-cmd option that look like this: Index: arch/alpha/boot/tools/objstrip.c == = Index: arch/alpha/boot/Makefile == = Is it possible to suppress such empty diffs? This makes the tools like ReviewBoard (www.reviewboard.org) examine a lot of unchanged files and slows them down considerably and unnecessary. What argument do you pass to --diff-cmd ? svn diff --diff-cmd=diff Is it possible that the files are actually different, but your diff command reports that they are not different (e.g. after normalizing whitespace). I think this header is printed on changed files, right before invoking the diff command. No, plain 'svn diff' does not show any differences, not even properties. For example: [aneyman@rhel-build2 src]$ svn diff $URL/SETUP.bash SETUP.bash [aneyman@rhel-build2 src]$ svn diff --diff-cmd=diff $URL/SETUP.bash SETUP.bash Index: SETUP.bash === Some more information: - While the properties on the file itself are the same, the inherited properties differ (at least, svn:mergeinfo on the parent directory). - This behavior is observed on 1.10.0-dev, 1.9.x and 1.8.x. Subversion 1.7.x does not display these spurious "Index:" lines. So, given the information above, can it be considered a bug/regression? Regards, Alexey. Regards, Alexey.
Re: svn generates long lists of empty diffs with --diff-cmd
On 04/20/2017 09:58 PM, Alexey Neyman wrote: On 04/20/2017 06:52 AM, Bert Huijben wrote: -Original Message- From: Alexey Neyman [mailto:sti...@att.net] Sent: donderdag 20 april 2017 02:59 To: users@subversion.apache.org Subject: svn generates long lists of empty diffs with --diff-cmd Hi, I noticed that SVN generates a lot of spurious diffs when using a --diff-cmd option that look like this: Index: arch/alpha/boot/tools/objstrip.c == = Index: arch/alpha/boot/Makefile == = Is it possible to suppress such empty diffs? This makes the tools like ReviewBoard (www.reviewboard.org) examine a lot of unchanged files and slows them down considerably and unnecessary. What argument do you pass to --diff-cmd ? svn diff --diff-cmd=diff Is it possible that the files are actually different, but your diff command reports that they are not different (e.g. after normalizing whitespace). I think this header is printed on changed files, right before invoking the diff command. No, plain 'svn diff' does not show any differences, not even properties. For example: [aneyman@rhel-build2 src]$ svn diff $URL/SETUP.bash SETUP.bash [aneyman@rhel-build2 src]$ svn diff --diff-cmd=diff $URL/SETUP.bash SETUP.bash Index: SETUP.bash === Some more information: - While the properties on the file itself are the same, the inherited properties differ (at least, svn:mergeinfo on the parent directory). - This behavior is observed on 1.10.0-dev, 1.9.x and 1.8.x. Subversion 1.7.x does not display these spurious "Index:" lines. Regards, Alexey.
Re: svn generates long lists of empty diffs with --diff-cmd
On 04/20/2017 06:52 AM, Bert Huijben wrote: -Original Message- From: Alexey Neyman [mailto:sti...@att.net] Sent: donderdag 20 april 2017 02:59 To: users@subversion.apache.org Subject: svn generates long lists of empty diffs with --diff-cmd Hi, I noticed that SVN generates a lot of spurious diffs when using a --diff-cmd option that look like this: Index: arch/alpha/boot/tools/objstrip.c == = Index: arch/alpha/boot/Makefile == = Is it possible to suppress such empty diffs? This makes the tools like ReviewBoard (www.reviewboard.org) examine a lot of unchanged files and slows them down considerably and unnecessary. What argument do you pass to --diff-cmd ? svn diff --diff-cmd=diff Is it possible that the files are actually different, but your diff command reports that they are not different (e.g. after normalizing whitespace). I think this header is printed on changed files, right before invoking the diff command. No, plain 'svn diff' does not show any differences, not even properties. For example: [aneyman@rhel-build2 src]$ svn diff $URL/SETUP.bash SETUP.bash [aneyman@rhel-build2 src]$ svn diff --diff-cmd=diff $URL/SETUP.bash SETUP.bash Index: SETUP.bash === Alexey.
RE: svn generates long lists of empty diffs with --diff-cmd
> -Original Message- > From: Alexey Neyman [mailto:sti...@att.net] > Sent: donderdag 20 april 2017 02:59 > To: users@subversion.apache.org > Subject: svn generates long lists of empty diffs with --diff-cmd > > Hi, > > I noticed that SVN generates a lot of spurious diffs when using a > --diff-cmd option that look like this: > > Index: arch/alpha/boot/tools/objstrip.c > == > = > Index: arch/alpha/boot/Makefile > == > = > > Is it possible to suppress such empty diffs? This makes the tools like > ReviewBoard (www.reviewboard.org) examine a lot of unchanged files and > slows them down considerably and unnecessary. What argument do you pass to --diff-cmd ? Is it possible that the files are actually different, but your diff command reports that they are not different (e.g. after normalizing whitespace). I think this header is printed on changed files, right before invoking the diff command. Bert > > Regards, > Alexey.
svn generates long lists of empty diffs with --diff-cmd
Hi, I noticed that SVN generates a lot of spurious diffs when using a --diff-cmd option that look like this: Index: arch/alpha/boot/tools/objstrip.c === Index: arch/alpha/boot/Makefile === Is it possible to suppress such empty diffs? This makes the tools like ReviewBoard (www.reviewboard.org) examine a lot of unchanged files and slows them down considerably and unnecessary. Regards, Alexey.
Re: svn --diff-cmd not working
Hi all, it turns out that the problem is because of End-of-Line in the wrapper script. Thank you for all your help. On Thursday, April 7, 2016 at 3:21:39 PM UTC+8, loudking wrote: > > Dear all, I configured svn to call a wrapper script for diff command but > encountered following error: > > ~/knowsg.com/steps $ svn diff command_at_development.txt > Index: command_at_development.txt > === > exec of '/home/knowsg_admin/bin/svndiffwrap.sh' failed: No such file or > directorysvn: '/home/knowsg_admin/bin/svndiffwrap.sh' returned 255 > > > part of ~/.subversion/config is like this: > > ### Set diff-cmd to the absolute path of your 'diff' program. > ### This will override the compile-time default, which is to use > ### Subversion's internal diff implementation. > # diff-cmd = diff_program (diff, gdiff, etc.) > diff-cmd = /home/knowsg_admin/bin/svndiffwrap.sh > > > But the script is right there with executing privileges: > > ~/knowsg.com/steps $ ll /home/knowsg_admin/bin > total 4.0K > -rwxr-xr-x 1 knowsg_admin knowsg_admin 369 Apr 5 11:06 svndiffwrap.sh* > > > Even its parent directory is on $PATH: > ~/knowsg.com/steps $ echo $PATH > /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin > :/sbin:/home/knowsg_admin/bin > > > Can anybody help me with this please? Thanks. >
Re: svn --diff-cmd not working
Am 08.04.2016 um 03:25 schrieb Ryan Schmidt: On Apr 7, 2016, at 2:21 AM, loudking wrote: Dear all, I configured svn to call a wrapper script for diff command but encountered following error: ~/knowsg.com/steps $ svn diff command_at_development.txt Index: command_at_development.txt === exec of '/home/knowsg_admin/bin/svndiffwrap.sh' failed: No such file or directorysvn: '/home/knowsg_admin/bin/svndiffwrap.sh' returned 255 part of ~/.subversion/config is like this: ### Set diff-cmd to the absolute path of your 'diff' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) diff-cmd = /home/knowsg_admin/bin/svndiffwrap.sh But the script is right there with executing privileges: ~/knowsg.com/steps $ ll /home/knowsg_admin/bin total 4.0K -rwxr-xr-x 1 knowsg_admin knowsg_admin 369 Apr 5 11:06 svndiffwrap.sh* Even its parent directory is on $PATH: ~/knowsg.com/steps $ echo $PATH /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/knowsg_admin/bin Can anybody help me with this please? Thanks. Are you using SELinux? If so, you may need to tell it to allow that script to be executed. Can you show us the header of the script? I'm wondering why it says "No such file or directorysvn"! Why is there this "svn"? What script interpreter have you specified? Is it installed and placed at the location specified in the script? This might raise this error too. Torge
Re: svn --diff-cmd not working
On Apr 7, 2016, at 2:21 AM, loudking wrote: > Dear all, I configured svn to call a wrapper script for diff command but > encountered following error: > > ~/knowsg.com/steps $ svn diff command_at_development.txt > Index: command_at_development.txt > === > exec of '/home/knowsg_admin/bin/svndiffwrap.sh' failed: No such file or > directorysvn: '/home/knowsg_admin/bin/svndiffwrap.sh' returned 255 > > > part of ~/.subversion/config is like this: > > ### Set diff-cmd to the absolute path of your 'diff' program. > ### This will override the compile-time default, which is to use > ### Subversion's internal diff implementation. > # diff-cmd = diff_program (diff, gdiff, etc.) > diff-cmd = /home/knowsg_admin/bin/svndiffwrap.sh > > > But the script is right there with executing privileges: > > ~/knowsg.com/steps $ ll /home/knowsg_admin/bin > total 4.0K > -rwxr-xr-x 1 knowsg_admin knowsg_admin 369 Apr 5 11:06 svndiffwrap.sh* > > > Even its parent directory is on $PATH: > ~/knowsg.com/steps $ echo $PATH > /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/knowsg_admin/bin > > > Can anybody help me with this please? Thanks. Are you using SELinux? If so, you may need to tell it to allow that script to be executed.
Re: svn --diff-cmd not working
Hello, Are you sure there are proper ${6} and ${7} arguments in any cases ? You should add check in your script before invoking vim -d I also recommend to end script with "exec /usr/bin/vim " -- Yves Martin
Re: svn --diff-cmd not working
On Thu, Apr 07, 2016 at 04:55:24PM +0800, Hongliang Wang wrote: > Hi Stefan, Thanks for your reply. The contents of my wrapper likes this and > it indeed has #!/bin/sh > > ~/bin $ cat svndiffwrap.sh > #!/bin/sh > > /usr/bin/vim -d ${6} ${7} > > /bin/sh and /usr/bin/vim both exists. > > ~/bin $ ll /bin/sh > lrwxrwxrwx. 1 root root 4 Mar 21 12:44 /bin/sh -> bash* > ~/bin $ ll /usr/bin/vim > -rwxr-xr-x 1 root root 2.1M Jul 24 2015 /usr/bin/vim* I tried the equivalent configuration on my computer and it works for me. I don't see why this doesn't work for you. Sorry, no idea :(
Re: svn --diff-cmd not working
Hi loudking, Dear all, I configured svn to call a wrapper script for diff command but encountered following error: | ~/knowsg.com/steps $ svn diff command_at_development.txt Index:command_at_development.txt === execof '/home/knowsg_admin/bin/svndiffwrap.sh'failed:Nosuch file ordirectorysvn:'/home/knowsg_admin/bin/svndiffwrap.sh'returned 255 | part of ~/.subversion/config is like this: | ### Set diff-cmd to the absolute path of your 'diff' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) diff-cmd =/home/knowsg_admin/bin/svndiffwrap.sh | But the script is right there with executing privileges: | ~/knowsg.com/steps $ ll /home/knowsg_admin/bin total 4.0K -rwxr-xr-x 1knowsg_admin knowsg_admin 369Apr511:06svndiffwrap.sh* | Even its parent directory is on $PATH: | ~/knowsg.com/steps $ echo $PATH /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/knowsg_admin/bin | Can anybody help me with this please? Thanks. You don't execute the svn command with a different use by any chance, do you? Did you test putting the svndiffwrap.sh file somewhere else (for example into /var/)? Regards, Stefan
svn --diff-cmd not working
Dear all, I configured svn to call a wrapper script for diff command but encountered following error: ~/knowsg.com/steps $ svn diff command_at_development.txt Index: command_at_development.txt === exec of '/home/knowsg_admin/bin/svndiffwrap.sh' failed: No such file or directorysvn: '/home/knowsg_admin/bin/svndiffwrap.sh' returned 255 part of ~/.subversion/config is like this: ### Set diff-cmd to the absolute path of your 'diff' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) diff-cmd = /home/knowsg_admin/bin/svndiffwrap.sh But the script is right there with executing privileges: ~/knowsg.com/steps $ ll /home/knowsg_admin/bin total 4.0K -rwxr-xr-x 1 knowsg_admin knowsg_admin 369 Apr 5 11:06 svndiffwrap.sh* Even its parent directory is on $PATH: ~/knowsg.com/steps $ echo $PATH /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin: /sbin:/home/knowsg_admin/bin Can anybody help me with this please? Thanks.
RFC: svn diff --diff-cmd cmd should check cmd earlier
If you made a typo in it and have a slow network connection to a remote repo and decided to make a cup of coffee while the command will complete - you'll be left out in the cold if you came back. Or ? -- MfG/Sincerely Toralf Förster pgp finger print: 7B1A 07F4 EC82 0F90 D4C2 8936 872A E508 7DB6 9DA3
Re: vimdiff wrapper for diff-cmd not working with 1.8
Michael Schlottke wrote on Wed, Jun 26, 2013 at 17:34:15 +0200: On Jun 21, 2013, at 15:23 , Philip Martin wrote: Another user raised the issue http://subversion.tigris.org/issues/show_bug.cgi?id=4382 Using '--diff-cmd colordiff' to get coloured output no longer works. Here's a solution that requires the user to mark the command as requiring direct access. Log and patch: Allow the user to bypass the temporary spool file when invoking an external diff command. This allows commands that expect to see a terminal to work. The user adds the prefix 'svn:direct:' to the command and Subversion passes the stream's file rather than creating a spool file. So --diff-cmd foo runs foo with a spool file and --diff-cmd svn:direct:foo runs foo with the stream's file. I can confirm that your patch works for me (OS X Lion and Linux). Thanks for the quick fix! Keeping my fingers crossed that this will make it into the repository soon. I believe http://svn.apache.org/r1497002 fixes this issue (without the svn:direct: prefix), and is proposed for backport towards 1.8.1. Daniel Michael
Re: vimdiff wrapper for diff-cmd not working with 1.8
On Jun 21, 2013, at 15:23 , Philip Martin wrote: Another user raised the issue http://subversion.tigris.org/issues/show_bug.cgi?id=4382 Using '--diff-cmd colordiff' to get coloured output no longer works. Here's a solution that requires the user to mark the command as requiring direct access. Log and patch: Allow the user to bypass the temporary spool file when invoking an external diff command. This allows commands that expect to see a terminal to work. The user adds the prefix 'svn:direct:' to the command and Subversion passes the stream's file rather than creating a spool file. So --diff-cmd foo runs foo with a spool file and --diff-cmd svn:direct:foo runs foo with the stream's file. I can confirm that your patch works for me (OS X Lion and Linux). Thanks for the quick fix! Keeping my fingers crossed that this will make it into the repository soon. Michael smime.p7s Description: S/MIME cryptographic signature
Re: vimdiff wrapper for diff-cmd not working with 1.8
Philip Martin philip.mar...@wandisco.com writes: It's also hard to fix 1.8, how do we pass the information into the client library without changing the API? Perhaps we could recognise a special part of the command name or a special external parameter, so --diff-cmd svn:interactive:myscript Another user raised the issue http://subversion.tigris.org/issues/show_bug.cgi?id=4382 Using '--diff-cmd colordiff' to get coloured output no longer works. Here's a solution that requires the user to mark the command as requiring direct access. Log and patch: Allow the user to bypass the temporary spool file when invoking an external diff command. This allows commands that expect to see a terminal to work. The user adds the prefix 'svn:direct:' to the command and Subversion passes the stream's file rather than creating a spool file. So --diff-cmd foo runs foo with a spool file and --diff-cmd svn:direct:foo runs foo with the stream's file. * subversion/include/private/svn_io_private.h (svn_stream__aprfile, svn_io__file_for_command_stream): New. * subversion/libsvn_subr/io.c (svn_io__file_for_command_stream): New. * subversion/libsvn_subr/stream.c (struct svn_stream_t): Add file member. (svn_stream_create, svn_stream_from_aprfile2): Set file member. (svn_stream__aprfile): New. * subversion/libsvn_client/diff.c (diff_content_changed): Use svn_io__file_for_command_stream. * subversion/svnlook/svnlook.c (print_diff_tree): Use svn_io__file_for_command_stream. Index: subversion/include/private/svn_io_private.h === --- subversion/include/private/svn_io_private.h (revision 1495378) +++ subversion/include/private/svn_io_private.h (working copy) @@ -90,7 +90,29 @@ svn_stream__set_is_buffered(svn_stream_t *stream, svn_boolean_t svn_stream__is_buffered(svn_stream_t *stream); +/** Return the underlying file, if any, associated with the stream, or + * NULL if not available. Accessing the file bypasses the stream and + * should only be done when such bypass is acceptable. + */ +apr_file_t * +svn_stream__aprfile(svn_stream_t *stream); +/** Examine ORIG_COMMAND to determine whether it requests direct + * access to the file, if so then return STREAM's file in *FILE and set + * *FILENAME to NULL or return an error if the file is not available. + * Otherwise return a temporary file in *FILE and the filename in + * *FILENAME. Return the true command in * *TRUE_COMMAND. + */ +svn_error_t * +svn_io__file_for_command_stream(apr_file_t **file, +const char **filename, +const char **true_command, +svn_stream_t *stream, +const char *orig_command, +apr_pool_t *result_pool, +apr_pool_t *scratch_pool); + + #ifdef __cplusplus } #endif /* __cplusplus */ Index: subversion/libsvn_client/diff.c === --- subversion/libsvn_client/diff.c (revision 1495378) +++ subversion/libsvn_client/diff.c (working copy) @@ -51,6 +51,7 @@ #include private/svn_wc_private.h #include private/svn_diff_private.h #include private/svn_subr_private.h +#include private/svn_io_private.h #include svn_private_config.h @@ -793,6 +794,7 @@ diff_content_changed(svn_boolean_t *wrote_header, const char *outfilename; const char *errfilename; svn_stream_t *stream; + const char *diff_cmd; /* Print out the diff header. */ SVN_ERR(svn_stream_printf_from_utf8(outstream, @@ -807,11 +809,13 @@ diff_content_changed(svn_boolean_t *wrote_header, * ### a non-git compatible diff application.*/ /* We deal in streams, but svn_io_run_diff2() deals in file handles, - unfortunately, so we need to make these temporary files, and then + so we need to make these temporary files, and then copy the contents to our stream. */ - SVN_ERR(svn_io_open_unique_file3(outfile, outfilename, NULL, - svn_io_file_del_on_pool_cleanup, - scratch_pool, scratch_pool)); + SVN_ERR(svn_io__file_for_command_stream(outfile, outfilename, + diff_cmd, outstream, + diff_cmd_baton-diff_cmd, + scratch_pool, scratch_pool)); + SVN_ERR(svn_io_open_unique_file3(errfile, errfilename, NULL, svn_io_file_del_on_pool_cleanup, scratch_pool, scratch_pool)); @@ -822,17 +826,21 @@ diff_content_changed(svn_boolean_t *wrote_header, label1, label2, tmpfile1, tmpfile2, exitcode, outfile
Re: vimdiff wrapper for diff-cmd not working with 1.8
On Jun 19, 2013, at 01:58 , Philip Martin wrote: [cc to dev] Michael Schlottke m.schlot...@aia.rwth-aachen.de writes: I just installed svn 1.8 on our cluster. Before, we used svn 1.7.9 and a little vimdiff wrapper (taken, with a few changes, from http://svnbook.red-bean.com/nightly/en/svn.advanced.externaldifftools.html#svn.advanced.externaldifftools.diff), which worked like a charm when called as svn diff --diff-cmd=diffwrap.py filename. However, with svn 1.8 something seems to have changed: The only lines I see after executing the command above are Index: filename === and the terminal hangs. When I enter :qa!, I get the following line Vim: Warning: Output is not to a terminal and I am back in the terminal. I have not changed anything in the wrapper script, and indeed, when I manually use it with our old svn version (1.7.9), it still works. Does anyone have an idea what has changed in the way the diff-cmd is invoked? And, more importantly, how I can change the vimdiff wrapper so it works again? I invoked vimdiff using a diff-cmd of: #!/bin/sh vimdiff $6 $7 That's the exact same command I used. this works with 1.7 but fails as you describe in 1.8. The cause is the conversion of diff to the stream API. The code in libsvn_client/diff.c:diff_content_changed now gets a Subversion stream rather than an APR file for output so it does: /* We deal in streams, but svn_io_run_diff2() deals in file handles, unfortunately, so we need to make these temporary files, and then copy the contents to our stream. */ SVN_ERR(svn_io_open_unique_file3(outfile, outfilename, NULL, svn_io_file_del_on_pool_cleanup, scratch_pool, scratch_pool)); and this use of a temporary file prevents the use of an external diff that expects a terminal. The only way I see to fix this is to stop using the stream API when the external diff command wants a terminal. I don't think it is possible to do this automatically, perhaps we need an --interactive-diff option? Do you have an idea of how hard this is to achieve, or how long it would take to create a patch? I'd be happy to volunteer as a tester… Or do you know of an interim hack that I could use until it is properly fixed? We'd really love to use svn 1.8 (especially with the new merging capabilities), but this is a major hindrance. Michael -- Michael Schlottke SimLab Highly Scalable Fluids Solids Engineering Jülich Aachen Research Alliance (JARA-HPC) RWTH Aachen University Wüllnerstraße 5a 52062 Aachen Germany Phone: +49 (241) 80 95188 Fax: +49 (241) 80 92257 Mail: m.schlot...@aia.rwth-aachen.de Web: http://www.jara.org/jara-hpc smime.p7s Description: S/MIME cryptographic signature
Re: vimdiff wrapper for diff-cmd not working with 1.8
On Wed, Jun 19, 2013 at 9:11 AM, Michael Schlottke m.schlot...@aia.rwth-aachen.de wrote: Do you have an idea of how hard this is to achieve, or how long it would take to create a patch? I'd be happy to volunteer as a tester… Or do you know of an interim hack that I could use until it is properly fixed? I don't imagine it'd take very long at all to implement but the problem of course is that we really should think carefully how we go about doing this. If we can detect this at runtime we probably should. I'm not sure what platform you're on but using the GUI version of vimdiff would get around this for you in the meantime. You'll end up with one vimdiff window per file. On the Mac for instance all I did was symlink mvimdiff to mvim (which is essentially equivalent to gvim on other platforms) and then change the wrapper to use that instead of vimdiff. I realize it's not ideal but it should give you almost the same functionality that you had before.
Re: vimdiff wrapper for diff-cmd not working with 1.8
Ben Reser b...@reser.org writes: I don't imagine it'd take very long at all to implement but the problem of course is that we really should think carefully how we go about doing this. If we can detect this at runtime we probably should. I don't see how Subversion can determine that one script needs a terminal while another can use a file, only the user knows that. It's also hard to fix 1.8, how do we pass the information into the client library without changing the API? Perhaps we could recognise a special part of the command name or a special external parameter, so --diff-cmd svn:interactive:myscript or --diff-cmd myscript -x svn:interactive gets a terminal while --diff-cmd myscript gets a file. -- Philip Martin | Subversion Committer WANdisco | Non-Stop Data www.wandisco.com
Re: vimdiff wrapper for diff-cmd not working with 1.8
On Jun 19, 2013, at 09:56 , Ben Reser wrote: On Wed, Jun 19, 2013 at 9:11 AM, Michael Schlottke m.schlot...@aia.rwth-aachen.de wrote: Do you have an idea of how hard this is to achieve, or how long it would take to create a patch? I'd be happy to volunteer as a tester… Or do you know of an interim hack that I could use until it is properly fixed? I don't imagine it'd take very long at all to implement but the problem of course is that we really should think carefully how we go about doing this. If we can detect this at runtime we probably should. I fully agree that this should be done right, and preferably without adding complexity through additional flags. However, for now I'd prefer a quick-n-dirty solution rather than not being able to upgrade at all. I know this is asking for quite something, especially since I don't know how to do it myself :-/ I'm not sure what platform you're on but using the GUI version of vimdiff would get around this for you in the meantime. Thanks for the tip! Unfortunately, gvim is not an option unfortunately, since most of the machines do not have a proper version of gvim installed. Michael smime.p7s Description: S/MIME cryptographic signature
Re: vimdiff wrapper for diff-cmd not working with 1.8
Michael Schlottke m.schlot...@aia.rwth-aachen.de writes: However, for now I'd prefer a quick-n-dirty solution rather than not being able to upgrade at all. I know this is asking for quite something, especially since I don't know how to do it myself :-/ Here's my really quick-n-dirty patch used during investigation. It's not going to be committed. If it breaks you get to keep the pieces: Index: subversion/libsvn_client/diff.c === --- subversion/libsvn_client/diff.c (revision 1494268) +++ subversion/libsvn_client/diff.c (working copy) @@ -816,13 +816,18 @@ diff_content_changed(svn_boolean_t *wrote_header, svn_io_file_del_on_pool_cleanup, scratch_pool, scratch_pool)); + { +apr_file_t *stdout_file; +apr_file_open_stdout(stdout_file, scratch_pool); + SVN_ERR(svn_io_run_diff2(., diff_cmd_baton-options.for_external.argv, diff_cmd_baton-options.for_external.argc, label1, label2, tmpfile1, tmpfile2, - exitcode, outfile, errfile, + exitcode, stdout_file, errfile, diff_cmd_baton-diff_cmd, scratch_pool)); + } SVN_ERR(svn_io_file_close(outfile, scratch_pool)); SVN_ERR(svn_io_file_close(errfile, scratch_pool)); -- Philip Martin | Subversion Committer WANdisco | Non-Stop Data www.wandisco.com
Re: vimdiff wrapper for diff-cmd not working with 1.8
Philip Martin philip.mar...@wandisco.com writes: Ben Reser b...@reser.org writes: I don't imagine it'd take very long at all to implement but the problem of course is that we really should think carefully how we go about doing this. If we can detect this at runtime we probably should. I don't see how Subversion can determine that one script needs a terminal while another can use a file, only the user knows that. It's also hard to fix 1.8, how do we pass the information into the client library without changing the API? Perhaps we could recognise a special part of the command name or a special external parameter, so --diff-cmd svn:interactive:myscript or --diff-cmd myscript -x svn:interactive gets a terminal while --diff-cmd myscript gets a file. Or we could extend the opaque svn_stream_t to make the underlying apr_file_t available. Is mixing output to the file and output to the stream acceptable or does it introduce output order problems? Index: subversion/include/private/svn_io_private.h === --- subversion/include/private/svn_io_private.h (revision 1494268) +++ subversion/include/private/svn_io_private.h (working copy) @@ -90,7 +90,10 @@ svn_stream__set_is_buffered(svn_stream_t *stream, svn_boolean_t svn_stream__is_buffered(svn_stream_t *stream); +apr_file_t * +svn_stream__aprfile(svn_stream_t *stream); + #ifdef __cplusplus } #endif /* __cplusplus */ Index: subversion/libsvn_client/diff.c === --- subversion/libsvn_client/diff.c (revision 1494268) +++ subversion/libsvn_client/diff.c (working copy) @@ -51,6 +51,7 @@ #include private/svn_wc_private.h #include private/svn_diff_private.h #include private/svn_subr_private.h +#include private/svn_io_private.h #include svn_private_config.h @@ -809,13 +810,22 @@ diff_content_changed(svn_boolean_t *wrote_header, /* We deal in streams, but svn_io_run_diff2() deals in file handles, unfortunately, so we need to make these temporary files, and then copy the contents to our stream. */ - SVN_ERR(svn_io_open_unique_file3(outfile, outfilename, NULL, - svn_io_file_del_on_pool_cleanup, - scratch_pool, scratch_pool)); - SVN_ERR(svn_io_open_unique_file3(errfile, errfilename, NULL, - svn_io_file_del_on_pool_cleanup, - scratch_pool, scratch_pool)); + outfile = svn_stream__aprfile(outstream); + if (!outfile) +SVN_ERR(svn_io_open_unique_file3(outfile, outfilename, NULL, + svn_io_file_del_on_pool_cleanup, + scratch_pool, scratch_pool)); + else +outfilename = NULL; + errfile = svn_stream__aprfile(errstream); + if (!errfile) +SVN_ERR(svn_io_open_unique_file3(errfile, errfilename, NULL, + svn_io_file_del_on_pool_cleanup, + scratch_pool, scratch_pool)); + else +errfilename = NULL; + SVN_ERR(svn_io_run_diff2(., diff_cmd_baton-options.for_external.argv, diff_cmd_baton-options.for_external.argc, @@ -824,20 +834,28 @@ diff_content_changed(svn_boolean_t *wrote_header, exitcode, outfile, errfile, diff_cmd_baton-diff_cmd, scratch_pool)); - SVN_ERR(svn_io_file_close(outfile, scratch_pool)); - SVN_ERR(svn_io_file_close(errfile, scratch_pool)); + if (outfilename) +SVN_ERR(svn_io_file_close(outfile, scratch_pool)); + if (errfilename) +SVN_ERR(svn_io_file_close(errfile, scratch_pool)); /* Now, open and copy our files to our output streams. */ - SVN_ERR(svn_stream_open_readonly(stream, outfilename, - scratch_pool, scratch_pool)); - SVN_ERR(svn_stream_copy3(stream, svn_stream_disown(outstream, - scratch_pool), + if (outfilename) +{ + SVN_ERR(svn_stream_open_readonly(stream, outfilename, + scratch_pool, scratch_pool)); + SVN_ERR(svn_stream_copy3(stream, svn_stream_disown(outstream, + scratch_pool), + NULL, NULL, scratch_pool)); +} + if (errfilename) +{ + SVN_ERR(svn_stream_open_readonly(stream, errfilename, + scratch_pool, scratch_pool)); + SVN_ERR(svn_stream_copy3(stream, svn_stream_disown(errstream, + scratch_pool
Re: vimdiff wrapper for diff-cmd not working with 1.8
On Jun 19, 2013, at 12:08 , Philip Martin wrote: Philip Martin philip.mar...@wandisco.com writes: Ben Reser b...@reser.org writes: I don't imagine it'd take very long at all to implement but the problem of course is that we really should think carefully how we go about doing this. If we can detect this at runtime we probably should. I don't see how Subversion can determine that one script needs a terminal while another can use a file, only the user knows that. It's also hard to fix 1.8, how do we pass the information into the client library without changing the API? Perhaps we could recognise a special part of the command name or a special external parameter, so --diff-cmd svn:interactive:myscript or --diff-cmd myscript -x svn:interactive gets a terminal while --diff-cmd myscript gets a file. Or we could extend the opaque svn_stream_t to make the underlying apr_file_t available. Is mixing output to the file and output to the stream acceptable or does it introduce output order problems? I tried installed both your patches and both work just fine, thank you very much. Without giving it much thought, I now went for your second patch (it seemed to be the more sophisticated one). I think something like the -x svn:interactive option would be the best solution, since that way the diff-cmd really just remains a command. Thank you very much for your quick help! I'll definitely keep tabs on the development of this, I hope that one way or another it will make it into the svn code base. Michael smime.p7s Description: S/MIME cryptographic signature
vimdiff wrapper for diff-cmd not working with 1.8
Hi there, I just installed svn 1.8 on our cluster. Before, we used svn 1.7.9 and a little vimdiff wrapper (taken, with a few changes, from http://svnbook.red-bean.com/nightly/en/svn.advanced.externaldifftools.html#svn.advanced.externaldifftools.diff), which worked like a charm when called as svn diff --diff-cmd=diffwrap.py filename. However, with svn 1.8 something seems to have changed: The only lines I see after executing the command above are Index: filename === and the terminal hangs. When I enter :qa!, I get the following line Vim: Warning: Output is not to a terminal and I am back in the terminal. I have not changed anything in the wrapper script, and indeed, when I manually use it with our old svn version (1.7.9), it still works. Does anyone have an idea what has changed in the way the diff-cmd is invoked? And, more importantly, how I can change the vimdiff wrapper so it works again? Regards, Michael -- Michael Schlottke SimLab Highly Scalable Fluids Solids Engineering Jülich Aachen Research Alliance (JARA-HPC) RWTH Aachen University Wüllnerstraße 5a 52062 Aachen Germany Phone: +49 (241) 80 95188 Fax: +49 (241) 80 92257 Mail: m.schlot...@aia.rwth-aachen.de Web: http://www.jara.org/jara-hpc smime.p7s Description: S/MIME cryptographic signature
Re: vimdiff wrapper for diff-cmd not working with 1.8
[cc to dev] Michael Schlottke m.schlot...@aia.rwth-aachen.de writes: I just installed svn 1.8 on our cluster. Before, we used svn 1.7.9 and a little vimdiff wrapper (taken, with a few changes, from http://svnbook.red-bean.com/nightly/en/svn.advanced.externaldifftools.html#svn.advanced.externaldifftools.diff), which worked like a charm when called as svn diff --diff-cmd=diffwrap.py filename. However, with svn 1.8 something seems to have changed: The only lines I see after executing the command above are Index: filename === and the terminal hangs. When I enter :qa!, I get the following line Vim: Warning: Output is not to a terminal and I am back in the terminal. I have not changed anything in the wrapper script, and indeed, when I manually use it with our old svn version (1.7.9), it still works. Does anyone have an idea what has changed in the way the diff-cmd is invoked? And, more importantly, how I can change the vimdiff wrapper so it works again? I invoked vimdiff using a diff-cmd of: #!/bin/sh vimdiff $6 $7 this works with 1.7 but fails as you describe in 1.8. The cause is the conversion of diff to the stream API. The code in libsvn_client/diff.c:diff_content_changed now gets a Subversion stream rather than an APR file for output so it does: /* We deal in streams, but svn_io_run_diff2() deals in file handles, unfortunately, so we need to make these temporary files, and then copy the contents to our stream. */ SVN_ERR(svn_io_open_unique_file3(outfile, outfilename, NULL, svn_io_file_del_on_pool_cleanup, scratch_pool, scratch_pool)); and this use of a temporary file prevents the use of an external diff that expects a terminal. The only way I see to fix this is to stop using the stream API when the external diff command wants a terminal. I don't think it is possible to do this automatically, perhaps we need an --interactive-diff option? -- Philip Martin | Subversion Committer WANdisco | Non-Stop Data www.wandisco.com
Re: diff-cmd =
On Fri, Feb 11, 2011 at 12:13:36PM +0600, Victor Sudakov wrote: Ryan Schmidt wrote: [dd] This looks like http://subversion.tigris.org/issues/show_bug.cgi?id=2930 i.e., you've found the current status quo; there is no better method currently available. I have always been told that I am a good tester (i.e. have the ability to come across bugs), but my rate of tripping on all the subversion rakes is alarming. This isn't particularly hard to fix, so it's an ideal problem for new contributors. This may be one reason why it hasn't been fixed yet. In the big picture, it doesn't hurt to let little problems like this linger. Most people will just write a wrapper script and move on. Too bad. But someone will eventually be looking for things to get their feet wet, and issues like this are ideal for that. Or it will annoy someone so much that they take the time to fix it. The existing developers have much harder sets of problems to juggle. And yes, of course, sometimes existing developers find time to fix simple problems like this. However we have a strong culture of encouraging new contributors so having issues like this open is also a good thing for the project. So, take the plunge if you can! Thanks.
diff-cmd =
Colleagues, I like very much the default output of the FreeBSD diff program. So I prefer using svn diff --diff-cmd=/usr/bin/diff -x --normal instead of just svn diff. However, when I put the line diff-cmd = /usr/bin/diff -x --normal into ~/.subversion/config, I get the following error message: exec of '/usr/bin/diff -x --normal' failed: No such file or directorysvn: '/usr/bin/diff -x --normal' returned 255 I guess it is trying to exec '/usr/bin/diff -x --normal' as a whole which is kind of expected. For the present, I have created a shell alias for the svn diff command, but I am curious what the correct ~/.subversion/config syntax is to achieve what I want? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru
Re: diff-cmd =
On Feb 10, 2011, at 23:33, Victor Sudakov wrote: I like very much the default output of the FreeBSD diff program. So I prefer using svn diff --diff-cmd=/usr/bin/diff -x --normal instead of just svn diff. However, when I put the line diff-cmd = /usr/bin/diff -x --normal into ~/.subversion/config, I get the following error message: exec of '/usr/bin/diff -x --normal' failed: No such file or directorysvn: '/usr/bin/diff -x --normal' returned 255 I guess it is trying to exec '/usr/bin/diff -x --normal' as a whole which is kind of expected. For the present, I have created a shell alias for the svn diff command, but I am curious what the correct ~/.subversion/config syntax is to achieve what I want? This looks like http://subversion.tigris.org/issues/show_bug.cgi?id=2930 i.e., you've found the current status quo; there is no better method currently available.
Re: diff-cmd =
Ryan Schmidt wrote: [dd] This looks like http://subversion.tigris.org/issues/show_bug.cgi?id=2930 i.e., you've found the current status quo; there is no better method currently available. I have always been told that I am a good tester (i.e. have the ability to come across bugs), but my rate of tripping on all the subversion rakes is alarming. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru
Re: svn diff --diff-cmd diff -r PREV doesn't work subversion repo of nmap
On Mar 12, 2010, at 20:27, Andy Levy wrote: I just ran the exact sequence in your bug report on OS X 10.6.2 and it executed cleanly using SVN 1.6.5. I don't have 1.6.9 handy I'm not sure what I need to do to get it installed; I think I'm missing some dev tools. One way to get it is to use MacPorts. 1. Download Xcode from Apple's web site and install 2. Download MacPorts from the MacPorts web site and install 3. Run sudo port install subversion in the Terminal [1] http://developer.apple.com/technologies/xcode.html [2] http://www.macports.org/install.php
Re: svn diff --diff-cmd diff -r PREV doesn't work subversion repo of nmap
Andy Levy wrote at 22:31:19 Since Subversion is returning svn: Process 'diff' failed (exitwhy 2) Isn't it possible that it's a problem with diff? No, this issue happens with every other diff command/wrapper I used (eg. $ svn diff --diff-cmd echo -r PREV) It happens only within the subversion directory of nmap (which was freshly checked out, no local commits /edits were done). This issue do not happens in any other local repository. The only difference which I can see is that the nmap repo contains external items. -- MfG/Sincerely Toralf Förster pgp finger print: 7B1A 07F4 EC82 0F90 D4C2 8936 872A E508 7DB6 9DA3