On Fri, Aug 23, 2019 at 11:06 AM Elijah Newren <newren@xxxxxxxxx> wrote: <snip> > Safety: <snip> Ooh, and another one I remembered just after hitting 'send': * If the user provides a --tag-name-filter that maps multiple tags to the same name, no warning or error is provided; filter-branch simply overwrites each tag in some undocumented pre-defined order (lexicographic) resulting in only one tag at the end. A regression test will fail if you attempt to error out and warn the user, so if you are trying to make a backward compatible reimplementation you have to add extra code to detect collisions and make sure that only the lexicographically last one is rewritten. (fast-import will naturally error out if told to write the same tag more than once, so you have to avoid triggering it.) <snip> > Summary of above: Anything compatible with git-filter-branch will be > slower than molasses and extraordinarily unsafe. <snip.