Before you use this solution
I strongly recommend reading comments both to question and answer - this solution is dirty and should be used only, when there is no other choice (because of company policy, or anything else that you cannot change).
Solution
First thing I found out was that I need to use dependency link. It is useful, when repo version is higher than PyPI. Problem is, that installation apps prefer PyPI over VCS, when versions are the same.
So, thanks to this: Setuptools unable to use link from dependency_links I figured out that I need to tell installing app that VCS holds higher version than PyPI, even though they are the same, and require version less or equal to this higher version (which I declared is on VCS).
So, yeah, cool. I can write:
...
install_requires=[ ..., "watchdog<0.6.1", ...],
...
dependency_links = [
...
"git+https://github.com/gorakhargosh/watchdog.git#egg=watchdog",
...
], ...
but if tommorow new version comes out, then I stay behind newest bug fixes, etc.
So I figured out, that I need to find out highest version at the moment, and do the trick with version "one point higher on last position". Here is code I used for this. I put it in "setup_helpers.py": http://pastebin.com/1crW5VCL
Now, in setup.py I did something like that:
from setup_helpers import vcs_requirement, egg_name
...
install_requires=[ ..., vcs_requirement("watchdog"), ...],
...
dependency_links = [
...
"git+https://github.com/gorakhargosh/watchdog.git#egg=%s" % egg_name("watchdog"),
...
], ...
And that does the trick - and will as long, as noone will mess with version numbers (so they stay strictly numeric, without branches, etc, etc). Also, this enforces assumption that VCS code is more up-to-date than PyPI code. It works for me.