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

Re: Bulit-in patch is needed when --patch-cmd option of 'svn patch' is omitted

From: Arfrever Frehtes Taifersar Arahesis <arfrever.fta_at_gmail.com>
Date: Sun, 21 Sep 2008 22:27:34 +0200

2008-09-21 04:11:27 masaru tsuchiyama napisaƂ(a):
> Hi.
>
> I tried svnpatch-diff branch on Windows XP.
>
> I got the followging error when patching.
> ---------------------------------------------------------------------
> D:\...>svn patch out.txt
> patching file build.conf
> patching file www/hacking.html
> Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354
>
> This application has requested the Runtime to terminate it in an unusual way.
> Please contact the application's support team for more information.
> svn: No 'patch' program was found in your system. Please try
> to use --patch-cmd or 'patch-cmd' run-time configuration
> option or manually use an external tool to apply Unidiffs.
> svn: External program is missing
> ---------------------------------------------------------------------
>
> patch program is usaually not available on Windows.
> 'svn diff' command also has '--diff-cmd' option, but it uses built-in
> diff if the option is omitted.
>
> I think 'svn patch' also should use built-in patch if '--patch-cmd'
> option is omitted.

Built-in patch isn't implemented. You need to install GNU patch.
If %PATH% variable contains the directory with the 'patch' executable, you
won't need to use '--patch-cmd' option.

^/branches/svnpatch-diff/notes/svnpatch contains this fragment:

   V PATCHING
     --------

   When it comes to applying an svnpatch patch (RAS syndrom), the 'svn patch'
   subcommand is a good friend. We don't currently support applying (a) Unidiffs
   internally. We instead call an external program to do the job for us which the
   user may specify with the 'patch-cmd' entry in the run-time configuration. 'svn
   patch' also has a --patch-cmd flag that overrides this run-time config. When
   none of those flags are specified, the ultimate fallback is to try to call
   'patch'. Since GNU patch is widely available on many UNIX-like platforms, this
   workaround should cover a fairly large amount of users. No decision nor
   consensus have been taken towards this issue yet.
   On the other hand, (b) is handled with internal routines that read and drive
   editor functions out from the patch file much like what's being performed by
   libsvn_ra_svn with a network stream.

   Put differently, for now 'svn patch' will gladly apply any (full-featured-)patch
   on GNU-patch-enabled environments while it will bail out with a message on a
   GNU-patch-less one. In the latter, the user is left the burden to apply the
   Unidiff with his own tools.

-- 
Arfrever Frehtes Taifersar Arahesis

Received on 2008-09-21 22:30:51 CEST

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

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