Skip to content
This repository has been archived by the owner on Oct 9, 2023. It is now read-only.

A tool and a framework and a lib to manipulate version control system history by manipulating sequences of patch files !!! Migrated to Codeberg 🏔️ !!!

License

Notifications You must be signed in to change notification settings

KOLANICH-tools/patchSeq.py

Repository files navigation

patchSeq.py Unlicensed work

GitLab Build Status GitLab Coverage Libraries.io Status Code style: antiflash

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.


Stale 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.

Requirements

About

A tool and a framework and a lib to manipulate version control system history by manipulating sequences of patch files !!! Migrated to Codeberg 🏔️ !!!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages