On 2025/06/07 13:00:15 Branko Čibej wrote:
> On 7. 6. 25 12:19, Yasuhito FUTATSUKI wrote:
> > Hello,
> >
> > On 2025/06/07 18:09, Daniel Sahlberg wrote:
> >> lör 7 juni 2025 kl. 10:46 skrev Michael Osipov<micha...@apache.org>:
> >>
> >>> Folks,
> >>>
> >>> using
> >>> svn, Version 1.14.5 (r1922182)
> >>>     übersetzt am Apr  6 2025, um 14:15:38 auf amd64-portbld-freebsd13.4
> >>>
> >>> with config
> >>> $ cat /usr/local/etc/subversion/config
> >>> [helpers]
> >>> diff-cmd = colordiff
> >>>
> >>> Consider the following status:
> >>>> $ svn st --ignore-externals Bastille/templates/
> >>> poudriere/options/general/ | grep -v X
> >>>>   M
> >>> Bastille/templates/cafe-custom-uis/software-install-config-ports/var/db/ports
> >>>>   M
> >>> Bastille/templates/indocs/software-install-config-ports/var/db/ports
> >>>> D       poudriere/options/general/devel_apache-ant
> >>>> D       poudriere/options/general/devel_protobuf-c
> >>>> D       poudriere/options/general/emulators_linux_base-c7
> >>>> D       poudriere/options/general/emulators_linux_base-rl9
> >>>> D       poudriere/options/general/security_py-gssapi
> >>> Properties and content have been modified. colordiff should now colorize
> >>> output for all items.
> >>> Running "svn diff Bastille/templates/ poudriere/options/general/" does no
> >>> colorize diff on properties. See
> >>> https://people.freebsd.org/~michaelo/subversion/svn-propdiff-nocolor.png
> >>>
> >>> Let me know what you think,
> >> Is colordiff this program:
> >> https://www.colordiff.org
> >>
> >> In that case you should probably work with them to improve their parsing, I
> >> don’t think there is anything we can do on our side since it isn’t
> >> Subversion colouring the output.
> > The problem is that property diff never use external diff program.
> >
> > with dummy diff program bin/show_args.sh:
> > [[[
> > #!/bin/sh
> > n=0
> > while [ $n -le $# ] ; do
> >      echo \$$n = \'`eval 'echo $'${n}`\'
> >      n=$((${n}+1))
> > done
> > ]]]
> >
> > sample result of content diff:
> > [[[
> > $ svn diff -c 2236 --diff-cmd=bin/show_args.shfile:///var/db/svn/sysadmin/
> > Index: vendor/FreeBSD/releng/14.0/etc/periodic/daily/480.leapfile-ntpd
> > ===================================================================
> > $0 = 'bin/show_args.sh'
> > $1 = '-u'
> > $2 = '-L'
> > $3 = 'vendor/FreeBSD/releng/14.0/etc/periodic/daily/480.leapfile-ntpd 
> > (revision 2235)'
> > $4 = '-L'
> > $5 = 'vendor/FreeBSD/releng/14.0/etc/periodic/daily/480.leapfile-ntpd 
> > (revision 2236)'
> > $6 = '/tmp/svn-TANZb0'
> > $7 = '/tmp/svn-LMvZZl'
> > ]]]
> >
> > sample result of property diff:
> > [[[
> > $ svn diff -c 2237 --diff-cmd=bin/show_args.shfile:///var/db/svn/sysadmin/
> > Index: vendor/FreeBSD/releng/14.0/root
> > ===================================================================
> > --- vendor/FreeBSD/releng/14.0/root     (revision 2236)
> > +++ vendor/FreeBSD/releng/14.0/root     (revision 2237)
> >
> > Property changes on: vendor/FreeBSD/releng/14.0/root
> > ___________________________________________________________________
> > Added:svn:ignore
> > ## -0,0 +1,10 ##
> > +.bundle
> > +.cargo
> > +.config
> > +.history
> > +.lesshst
> > +.local
> > +.lsof_*
> > +.mysql_history
> > +.pgsql_history
> > +.python_history
> > ]]]
> 
> That's not so much a problem than the simple fact that there are not 
> many external tools that know how to handle Subversion's properties. 
> Colordiff doesn't for example. So if we somehow sent properties to an 
> external diff, just for starters, the diffs wouldn't be formatted correctly.

colordiff(1) works when invoke separately, This is good enough:
https://people.freebsd.org/~michaelo/subversion/svn-propdiff-nocolor2.png

I concur that this is a bug in Subversion by not invoking the internal diff 
command.

Michael

Reply via email to