Implantação do Heroku sem o aplicativo estar na raiz do repo (em uma subpasta)

Nas palavras dos próprios Heroku:

Os aplicativos Heroku esperam a estrutura de diretório do aplicativo na raiz do repositório. Se seu aplicativo estiver dentro de um subdiretório em seu repositório, ele não será executado quando for enviado ao Heroku.

Isso é obviamente um problema se você já criou a estrutura do seu projeto e particularmente não sente que está tudo bem que o Heroku ordene que você a altere.

Então … para consertar, usamos o novo (ish) módulo de subárvore git que foi comprometido com o branch git da linha principal em abril de 2012. Isso basicamente nos permite enviar apenas um subdiretório do seu repo para o heroku durante a implantação.

Dada a estrutura do projeto:

--/
----/.git
----/build
----/docs
----/pythonapp
----/----/requirements.txt

Na raiz do seu repo , você pode executar o seguinte comando:

git subtree push --prefix pythonapp heroku master

Isso enviará apenas a pasta pythonapp para o remoto.

Se você deseja ler mais sobre o módulo de subárvore, este artigo é um ótimo começo, pois é do autor do próprio módulo.