Stefan Sperling wrote on Tue, Sep 14, 2010 at 21:18:26 +0200: > On Tue, Sep 14, 2010 at 12:49:06PM +0100, Julian Foad wrote: > > Right. The issue seems to be "How do I determine what path I should > > apply the patch to?" If the patch style is > > > > --- wc/file > > +++ wc/file > > > > or > > > > --- old_wc/file > > +++ new_wc/file > > > > then you're going to be stripping the first component so it doesn't > > matter which path you use. If the patch is just to one file and looks > > something like > > > > --- wc/file.old > > +++ wc/file > > > > or > > > > --- wc/file > > +++ wc/file.new > > > > or > > > > --- wc/file.old > > +++ wc/file.new > > > > then obviously it's not so simple and the patch consumer (person) may > > need to be able to tell "svn patch" which path it should look at if > > we're to be able to handle cases like this. > > Yes. I've been trying to come up with a good UI for selecting the right > filename for svn patch to use. Any ideas?
Paraphrasing my commit reply a few hours ago, how about: * Always use the name from the /^+++/ line by default (regardless of --rd). * Have a --strip-extension flag. (Effect: filename loses everything after the last dot) * Have a the following config option: [[[ # ~/.subversion/config [miscellany] patch-strip-extensions = .new .old .orig .org ~ \ .merge-left .merge-right .working ]]] for extensions that are stripped automagically. Sounds sane? (I haven't thought about this /too/ much, so beware of bugs in the above idea) Daniel