Qual è una buona strategia di implementazione da utilizzare con Git + Heroku (Ruby on Rails)?Implementazione di Good Git usando la strategia dei rami con Heroku?
Attualmente il modo in cui lavoro con la mia origine repository Git: Tutte le funzionalità (o 'storie') vengono prima controllate come succursali, quindi vengono unite con il master e inviate all'origine.
Qualsiasi elemento inviato all'origine/master attiva uno script che estrae il nuovo codice di rails nell'area di gestione temporanea (semplice server di gestione delle rotaie).
Quando arriva il momento di spingere una nuova versione di produzione su Heroku, dovrei creare un nuovo ramo (chiamato qualcosa come production_version_121) e spingerlo in qualche modo a Heroku?
Idealmente mi piacerebbe scegliere e scegliere le funzionalità delle precedenti versioni di sviluppo che dovrei includere nel ramo di produzione ... testarlo e inviare a Heroku.
Ad esempio, potrei non volere che tutto il codice più recente venga spinto alla produzione. Potrei desiderare che la caratteristica "a" su cui avevo lavorato e la caratteristica "c" si siano fuse in qualche modo nella produzione, senza includere la funzione sperimentale "b" che ha bisogno di più debug.
N.B. Cercherò di evitare capistrano all'inizio e ottenere qualcosa che funzioni manualmente per ora.
Pensieri? Migliori pratiche?
Grazie David! Ero curioso di sapere se qualcuno lo stesse facendo in quel modo. Bene, sto solo usando il mio "master" remoto come la produzione .. così da distribuire continuo a fare: git push heroku (quando arriva il momento) Il problema è che non ho ancora le funzionalità che voglio per scegliere e includere in una distribuzione di produzione ancora ... Mi aspetto la necessità di sorgere, nel qual caso dovrò avviare un ramo legittimo di "produzione" sul mio server git remoto. La prossima volta provo con: git push heroku production: master presumo che si lamenterà e avrò bisogno di usare la flag "force" così heroku butta via cosa stava inseguendo? – Zaqintosh
La mia unica altra domanda è, stai usando il tuo master remoto per qualcosa? Oppure lavori nelle filiali e schierati/unisci/dai rami il 100% delle volte? – Zaqintosh
Se si deve forzare o meno dipenderà da se "produzione" è una diretta discendente di ciò che attualmente esiste sul master remoto. Gemcutter utilizza il ramo "master" come tronco. È dove vanno tutti gli ultimi cambiamenti. I rami feature vengono creati, quindi riuniti nel trunk. A volte singoli commit o feature branch sono unificati nel branch di produzione, a volte master viene unito direttamente se vogliamo tutto. –