We have moved to https://codeberg.org/KOLANICH-tools/patchSeq.py, grab new versions there.
Under the disguise of "better security" Micro$oft-owned GitHub has discriminated users of 1FA passwords while having commercial interest in success of FIDO 1FA specifications and Windows Hello implementation which it promotes as a replacement for passwords. It will result in dire consequencies and is competely inacceptable, read why.
If you don't want to participate in harming yourself, it is recommended to follow the lead and migrate somewhere away of GitHub and Micro$oft. Here is the list of alternatives and rationales to do it. If they delete the discussion, there are certain well-known places where you can get a copy of it. Read why you should also leave GitHub.
Please consider using https://gitlab.com/esr/reposurgeon instead of this unfinished tool first, it is likely that reposurgeon
has everything you need, and it deals with the repo formats of a VCSs it supports directly, which minimizes information loss and improves speed. For me it has solved all my current needs so this tool is left unfinished.
git filter-branch
has proven to be too limited and slow. We need something better.
It turned out that even exporting commits into a dir as patches and then applying them is faster.
So I have written this tool. It works on patches and probably can work with any VCS that can import and export patches in unified diff format, not only git.
It provides the following primitives:
- importing patches
- remove patches not touching certain files.
- merge identically named patches in 2 separate folders
- renumbering patches
- removing empty patches
- renaming/moving files
Using them you can for example extract parts of other projects preserving linear history - something that git-filter-branch
cannot do efficiently for now: --subdirectory-filter
currently allows only a single dir, and disallows a file at all, other stuff is damn slow.
BFG repo cleaner is limited, its development has stopped and is written in shitty Scala I don't want to touch.