If your project depends on packages that aren't registered in PyPI, you may
still be able to depend on them, as long as they are available for download
-as an egg, in the standard distutils ``sdist`` format, or as a single ``.py``
-file. You just need to add some URLs to the ``dependency_links`` argument to
+- an egg, in the standard distutils ``sdist`` format,
+- a single ``.py`` file, or
+- a VCS repository (Subversion, Mercurial, or Git).
+You just need to add some URLs to the ``dependency_links`` argument to
-1. direct download URLs, or
-2. the URLs of web pages that contain direct download links
+1. direct download URLs,
+2. the URLs of web pages that contain direct download links, or
In general, it's better to link to web pages, because it is usually less
complex to update a web page than to release a new version of your project.
and automatically create a trivial ``setup.py`` to wrap the single ``.py`` file
+In the case of a VCS checkout, you should also append ``#egg=project-version``
+in order to identify for what package that checkout should be used. You can
+append ``@REV`` to the URL's path (before the fragment) to specify a revision.
+Additionally, you can also force the VCS being used by prepending the URL with
+a certain prefix. Currently available are:
+- ``svn+URL`` for Subversion,
+- ``git+URL`` for Git, and
+- ``hg+URL`` for Mercurial
+A more complete example would be:
+Be careful with the version. It should match the one inside the project files.
+If you want do disregard the version, you have to omit it both in the
+``requires`` and in the URL's fragment.
+This will do a checkout (or a clone, in Git and Mercurial parlance) to a
+temporary folder and run ``setup.py bdist_egg``.
The ``dependency_links`` option takes the form of a list of URL strings. For
example, the below will cause EasyInstall to search the specified page for
eggs or source distributions, if the package's dependencies aren't already