2011-08-21 18 views
5

ho più progetti che condivide bambino applicazioni con altri progetti . Quando si lavora all'interno del progetto directory Desidero poter apportare modifiche all'app , aggiornarlo e inserire tali aggiornamenti nel secondo progetto .come strutturare un pitone progetti con applicazioni sub condivise utilizzando git e buidout senza collegamenti simbolici

Requisito:

  • Nessun uso di link simbolici (debugger del mio IDE non funziona bene con loro)
  • No compilazione/rieseguire uno script. Vorrei apportare modifiche all'app senza dover rieseguire uno script/buildout.
  • Le app devono trovarsi all'interno della cartella del progetto.

Ecco la struttura:

app_one (git repo) 
    |-- app_one (actual app uses by projects) 
    | +-- models.py 
    |-- README.md 
    +-- setup.py 

project_one (git repo) 
    |-- project_one 
    | |-- apps 
    | | |-- app_one 
    | | | +-- models.py 
    | | | -- app_two 
    |-- setup.cfg 
    +-- setup.py 

project_two (git repo) 
    |-- project_two 
    | |-- apps 
    | | |-- app_one (same app as project_one) 
    | | | +-- models.py 
    | | | -- app_two 
    |-- setup.cfg 
    +-- setup.py 

Attualmente sto usando git-sottomoduli per questo; il rovescio della medaglia è che non c'è modo di collegarsi a una sottocartella di un repository. Di recente ho letto di sottoalbero, funzionerebbe meglio?

Idealmente mi piacerebbe utilizzare buildout, ma non ho trovato un buon modo per realizzare questo senza l'uso di collegamenti simbolici. Se c'è un modo per farlo, per favore fatemelo sapere.

Qualsiasi suggerimento sarebbe molto apprezzato.

risposta

3

mr.developer. Quando una fonte mr.developer è spuntata e attivata, diventa un setuptools/distribute develop egg nel buildout e quindi il checkout sarà ciò che viene utilizzato da qualsiasi script (come un interprete python generato da zc.recipe.egg) nel buildout.

+0

mr.developer consente di lavorare direttamente con la fonte? O c'è un passo di compilazione? Se possibile mi piacerebbe lavorare direttamente su 'app' senza dover ricompilare dopo ogni modifica. –

+0

ha chiarito la risposta. –

+0

grazie per la risposta e il link, sto ancora cercando di capire esattamente cosa stanno dicendo. Con 'compile step', ripeto il buildout. È necessario rieseguire il buildout dopo ogni modifica? Nel caso in cui sia rilevante questo è per un progetto di motore di app quindi il codice sorgente, ad es. 'app_one' deve essere all'interno della directory' project_one/apps' –