Re: [RFC] Long running Git clean/smudge filter
From: Lars Schneider <hidden>
Date: 2016-07-12 09:30:18
On 10 Jul 2016, at 17:10, Joey Hess [off-list ref] wrote: larsxschneider@gmail.com wrote:quoted
(2) Joey's topic, which is the base for my patch, looks stalled for more than 2 weeks: http://thread.gmane.org/gmane.comp.version-control.git/297994/focus=298006 I would be happy to address Junio's comments and post a reroll. However, I don't want to interfere with Joey's plans.I've been on vacation and plan to get back to that in the upcoming week.
Good to hear :-) ! I hope you had a great vacation!
quoted
@Joey (in case you are reading this): My patch changes your initial idea quite a bit. However, I believe it is an improvement that could be beneficial for git-annex, too. Would you prefer to work with me on the combination of our ideas (file clean/smudge + long running clean/smudge processes) or would you prefer to keep your interface?Long running filters mean that you need a more complicated protocol to speak over the pipes. Seems that such a protocol could be designed to work with the original smudge/clean filters as well as with my smudgeToFile/cleanFromFile filters. Assuming that there's a way to tell whether the filters support being long-running or not. Note that the interface we arrived at for smudgeToFile/cleanFromFile is as similar as possible to smudge/clean, so the filter developer only has to change one thing. That's a big plus, and so I don't like diverging the two interfaces.
I understand, thanks for the clarification. My plan is to implement long running
filters only for smudgeToFile/cleanFromFile (at least initially) as this should
solve the major pain point already and is relatively straight forward.
What do you think about this kind of config? Any idea for a better config name?
[filter "bar"]
clean = foo1 %f
smudge = foo2 %f
cleanFromFile foo3
smudgeToFile foo4
longRunning = true
I think it would be easy to support both of our interfaces in parallel. Do
you understand why the "async" API is necessary?
https://github.com/larsxschneider/git/blob/74e22bd4e0b505785fa8ffc2ef15721909635d1c/convert.c#L585-L599
Would you be OK if I implement smudgeToFile/cleanFromFile as separate
"apply_filter" function as I have prototyped here:
https://github.com/larsxschneider/git/blob/74e22bd4e0b505785fa8ffc2ef15721909635d1c/convert.c#L1143-L1146
https://github.com/larsxschneider/git/blob/74e22bd4e0b505785fa8ffc2ef15721909635d1c/convert.c#L402-L488
Thanks,
Lars