They now have a python package that just works:
python3 -m pip install --user git-filter-repo
That method installs both the command line executable, and the Python library which you can use as shown here.
The executable is named
git-filter-repo, and Git automatically picks up any executable in
PATH with name
git-* on calls like
git *, which is how this works.
On this Ubuntu version or the one before, Ubuntu started adding the supremely annoying (but somewhat understandable) "error: externally-managed-environment" message to any pip install.
Thankfully they have a debian package for this one so you can:
sudo apt install git-filter-repo
Alternatively you can also override the error, or use a virtual environment, or the new
pipx thing: https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3
sudo apt install pipx
pipx install git-filter-repo
which places the executable at
I juts don't understand why
pip stopped working with the good old
--user, why do they keep changing the interface every two years!!!
If for some reason you don't want to use pip, you can also just:
# Add to bashrc.
mkdir -p ~/bin
wget -O ~/bin/git-filter-repo https://raw.githubusercontent.com/newren/git-filter-repo/7b3e714b94a6e5b9f478cb981c7f560ef3f36506/git-filter-repo
chmod +x ~/bin/git-filter-repo
Tested on Ubuntu 20.04, git-filter-repo ac039ecc095d.