#filter #git #pipeline #version-control #buffer #input #applied

gix-filter

A crate of the gitoxide project implementing git filters

16 releases (breaking)

new 0.11.3 Jul 23, 2024
0.11.1 Apr 13, 2024
0.11.0 Mar 14, 2024
0.8.1 Dec 30, 2023
0.2.0 Jul 22, 2023

#55 in Algorithms

Download history 68813/week @ 2024-04-02 64711/week @ 2024-04-09 65795/week @ 2024-04-16 66225/week @ 2024-04-23 69001/week @ 2024-04-30 68974/week @ 2024-05-07 69377/week @ 2024-05-14 71527/week @ 2024-05-21 66540/week @ 2024-05-28 64157/week @ 2024-06-04 70453/week @ 2024-06-11 70104/week @ 2024-06-18 65974/week @ 2024-06-25 65396/week @ 2024-07-02 68193/week @ 2024-07-09 58743/week @ 2024-07-16

268,866 downloads per month
Used in 37 crates (5 directly)

MIT/Apache

540KB
11K SLoC

A library for implementing everything needed to deal with git filter pipelines.

Generally, multiple filters are applied in a row forming a pipeline, with each filter being a stage in that pipeline. This pipeline is pre-determined with each stage being configurable.

The transformation on an input buffer goes in two ways: either a filter is applied, or its effects are undone. Differentiating between these states is important to avoid comparing unfiltered buffers with filtered ones, for example.

This crate implements the building blocks in terms of applying and undoing filters, along with logic to decide whether or not to apply such a filter.

Dependencies

~8–17MB
~294K SLoC