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

Reply via email to