Vincent Legoll <vincent.legoll <at> gmail.com> writes: > > On Tue, Jul 15, 2008 at 3:26 PM, Edwin Vane <revane <at> gmail.com> wrote: > > Hi, > > > > Using meld today I came across an error dialogue unexpectedly that read: > > > > Invoking patch failed, you need GNU patch. > > 'patch --strip=0 --reverse --directory=/tmp/tmpfsGU0V-meld' > > > > I have GNU patch 2.5.9 installed (the most current available to Ubuntu > > Gutsy). I can't immediately see anything weird about this file but I > > can look into it later if you guys don't have something obvious to > > suggest right now. Run from the command-line I get this Traceback: > > Could you give us more détails on what you were doing ? > I assume you were in a source controlled directory, looking > at files that differ from the committed ones. > > It would help if you'll describe very precise steps to reproduce > the bug. And if you could attach the 2 versions of the file you're > trying to diff, etc... >
I had this same problem and was able to track down the failure but am still looking at how to fix it. The error dialogue happens on any file which fails when a patch is applied. Patch fails whenever a diff is within 3 lines(normal diff context) of a SVN expanded keyword. The happens because the patch file is generated from svn diff(which does not expand the keywords) but in vcview.show_patch the shutil.copyfile call copies the file from the tree and this contains all of the subversion keywords expanded. When patch goes to apply the patch file it will fail because the patch looks like this: Index: Makefile =================================================================== --- Makefile (revision 973) +++ Makefile (working copy) @@ -1,4 +1,4 @@ -# +# # $Id$ # # The following creates/sets a few fundamental shell variables for us But the actual file looks like this: # # $Id: Makefile 942 2008-10-17 18:55:48Z fubar $ # # The following creates/sets a few fundamental shell variables for us Therefore, patch cannot figure out how to apply the patch because the diff file does not match the real file because in the diff the $Id$ keyword has not been expanded and in the copied file it has already been expanded by subversion. _______________________________________________ meld-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/meld-list
