Re: [PATCH] Introduce a filter-path argument to git-daemon, for doing custom path transformations
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:46:26
Hi, On Thu, 19 Mar 2009, Johan Sørensen wrote:
2009/3/19 Johannes Schindelin [off-list ref]:quoted
quoted
I actually was hoping (especially we have Dscho on Cc: list) that somebody like you would start suggesting a "plug in" approach to load .so files, which would lead to a easy-to-port dso support with the help from msysgit folks we can use later in other parts of the system (e.g. customizable filters used for diff textconv, clean/smudge, etc.)I do not like that at all. Dynamic libraries -- especially on Windows -- are a major hassle. However, I cannot think of anything Johan might want to do that would not be possible using a bunch of regular expressions together with substitions.Let me reiterate my use-case then: I need to dynamically substitute one path with another. Perhaps "map" paints a better picture than "substitute" here. Please refer to my second mail in this thread for more details. The only way I can see regexps work, is that if they're read, on a per-request basis (reloading git-daemon every time they change is just silly), from somewhere outside the git-daemon. Then, you might as well take the full-on approach this patch provides.quoted
FWIW I have experimental code in my personal tree that sports strbuf_regsub(), a function to replace matches of a regular expression (possibly with groups) by a given string (which may contain \0 .. \9, being replaced with the respective group's contents).
Do not get me wrong, I can see your use case. But I have been cautioning against other possibly regrettably things, and it gave me _no_ pleasure at all to be proven correct in hindsight. I'd rather be called grumpy old Git, be ridiculed and insulted, but at the same time have precautions in git.git that prevent having to admit mournfully that some change was not so brilliant after all. So if some rules consisting of regular expressions with appropriate substitutions, even if they will have to be updated from time to time, solve your case, I'd rather have that than allow a server to run external programs that are not exactly well audited against all kinds of attacks. Ciao, Dscho