Lucrez cu o situație similară cu cea pe care o aveți în prezent. Am fost însărcinată să găsesc o "mai bună"? soluție și a fugit ceva de-a lungul liniilor următoare.
Ramura live reprezintă serverele în starea lor actuală.
Orice activitate de dezvoltare ar trebui să se facă într-o ramură care este luată din viață. Aceasta ar putea fi o lucrare de o jumătate de oră pentru o persoană sau un proiect de echipă multi ani. De câte ori se plănuiește schimbarea de a trăi, acestea pot fi îmbinate în aceste ramuri de dezvoltare.
Înainte ca o piesă de lucru să devină live, modificările de la live se reunesc din nou și se etichetează ca o versiune potențială. Această versiune este testată pe mediul de așteptare și, dacă trece testul, noul live este luat din etichetă.
Este posibil să fuzionăm mai multe lucrări într-o singură versiune, dacă aceasta funcționează mai bine.
Acest lucru înseamnă că este destul de simplu să țineți ramurile de dezvoltare la zi cu live și dacă o piesă de lucru în dezvoltare este abandonată există un minim de ștergere de a face.
Pentru a trece de la lucrul la un proiect la altul, un dezvoltator poate pur și simplu să-și schimbe mediul de lucru local într-o altă ramură.
Una dintre problemele pe care le-am avut cu sistemul pe care îl descrieți este că DEV poate să iasă de la distanță cu PROD destul de repede, deci nu vă dezvoltați împotriva jocului viu și nu este ușor să identificați dependențele încrucișate până la etapă. Soluția de mai sus rezolvă aceste probleme, rămânând totuși destul de ușoară.