2011-11-29 23 views
8

sto provando a creare uno script capestrato deplyoment per un progetto git che ha un sottomodulo.progetto github con sottomoduli clonazione capistrano

Sono in esecuzione questi comandi

run "git clone [email protected]:GITPROJECT /var/www/myfolder" 

quando ho eseguito questo il modulo solito clone/var/www/myfolder invece crea solo una cartella vuota con il nome del modulo

quando ho prova a eseguire ciò non funzionerà

run "cd /var/www/myfolder/submodule && git pull master" 

qualcuno può aiutarmi con questo per favore?

+0

ho un lavoro per questo, per eseguire un RM -rf per/var/www/myfolder/submodule e clonare il sottomodulo in quella cartella di nuovo, non importa cosa succede a git come ho solo bisogno di copiare questo codice alla radice web. ancora non è una buona soluzione – nivanka

+0

Questo non funziona più in Capistrano 3.x –

risposta

18

Fondamentalmente quello che vi serve è

set :git_enable_submodules, 1 

opzione nello script deploy.rb. Indica a capistrano di avviare e aggiornare i sottomoduli git dopo aver recuperato la fonte dal repository principale. Se per qualche ragione si vuole fare manualmente è possibile eseguire che dalla directory principale del progetto:

git submodule update --init 

però, se non ricordo male, --init non è disponibile in alcune versioni precedenti di git, quindi se doesn 't lavorare si può fare così:

git submodule init && git submodule update 

Dai un'occhiata alla this answer per una spiegazione più esaustiva sulle opzioni di Git per Capistrano.

+0

fantastico! grazie ho perso l'aggiornamento del sottoprogramma git --init e l'aggiornamento del sottomodulo git init && git – nivanka

Problemi correlati