W dniu 31.08.2016 o 06:57, Torsten Bögershausen pisze:
> On Tue, Aug 30, 2016 at 03:23:10PM -0700, Junio C Hamano wrote:
>> Lars Schneider <larsxschnei...@gmail.com> writes:
>>> On 30 Aug 2016, at 20:59, Junio C Hamano <gits...@pobox.com> wrote:
Torsten, could you please in the future remove irrelevant parts of the
cited email you are responding to? Thanks in advance,
>>>> I meant it as primarily an example people can learn from when they
>>>> want to write their own.
>>> I think `t/t0021/rot13-filter.pl` (part of this patch) serves this purpose
>> I would expect them to peek at contrib/, but do you seriously expect
>> people to comb through t/ directory?
> How about a filter written in C, and placed in ./t/helper/ ?
> At least I feel that a filter in C-language could be a starting point
> for others which prefer, depending on the task the filter is going to do,
> to use shell scripts, perl, python or any other high-level language.
People do not look into t/helper/ area, but they do into contrib/.
Git provides examples on how to use its features there (among other
things). Examples for how use the fast-import feature / protocol
are here, in contrib/fast-import.
I think that C language would be not a good choice, as required
low level wrangling of the protocol would obscure the relevant parts,
... well perhaps except if pkt-line was reused. High-level language
would be better. The contrib/fast-import directory includes examples
in shell script, Perl and Python. The same could be done here
(possibly with more languages).
> A test case, where data can not be filtered, would be a minimum.
> As Jakub pointed out, you can use iconv with good and bad data.
The iconv might be good example, but I think it is not a practical
one; are there development environments that do not handle UTF-8?
More practical would be to have for example LFS-ish solution of
storing files as-is in a specified directory. ROT13 is also good,
if not a very practical example. Or rezipping all ZIP-compression
based files (ODF, JAR/WAR, DOCX / OOXML, CBZ, EPUB, APK, etc.).