Help with better development workflow

I'm trying to fork Kivy in such a way that I can rewind a bit to 1.10.1, patch things to stop being so painfully stupid about uncaught Fbo exceptions and then to possibly use that on a production system.

I can imagine a path that looks like:

  • Working locally, do a git push up to my own repository and tag that
  • Do a pip install https://github.com/OutsourcedGuru/kivy/archive/something.zip
  • Test that locally

But I really don't want to push-before-test. I want to test-before-push. The problem is that I can't simply go to the cloned/edited folder locally and:

git checkout mybranch
nano something
pip install -e .

This appears to be trying to install the latest tagged version from before rather than my local code. I don't see any way of doing something like pip install -e .==something for a particular tagged version. (Versioning only seems to work with remote repositories which sort of makes sense.) Perhaps though, it's necessary to git tag something it locally before the pip install -e . to get it to behave? (And yes, I've tried --no-cache-dir.)

Having run an earlier pip install -e . I also find that I can't seem to uninstall that. For example, pip uninstall -e . doesn't work nor does pip uninstall . or anything else. For what it's worth, pip freeze at that point showed:

-e git+https://github.com/OutsourcedGuru/kivy.git@909893d7877b5c2b0318c45edfac5c00176c9e6a#egg=Kivy