Avem doi dezvoltatori pe aceeași rețea închisă (ugh, stupid gov), un alt dezvoltator care a parcurs câteva minute pe drum și un al patrulea dezvoltator la jumătatea drumului în toată țara. E-mail, ftp și media de ștergere sunt toate metode posibile de transfer pentru persoanele care nu se află în aceeași rețea.
Sunt unul dintre cei doi dezvoltatori de rețele închise, considerați-ne locația "master".
Care este cea mai bună configurație / model Mercurial pentru grup? Care este cel mai bun mod de a trasmite modificările în / de la dezvoltatorii de la distanță? În calitate de responsabil, m-am gândit că ar trebui să păstrez cel puțin un master repo cu un alt repo local pe care să-l pot dezvolta. Fiecare altă persoană ar trebui să aibă nevoie doar de o clonă a maestrului. Este corect? Cred că asta mă face și eu responsabil de fuzionare?
După cum puteți vedea, încă încerc să-mi împachet capul în jurul controlului versiunii distribuite. Nu cred că există altă modalitate de a face acest lucru cu situația conectivității.
Utilizatorii din afara rețelei pot face patch-uri și / sau să utilizeze < prin e-mail pentru a trimite actualizările la repo principal sau pe cineva, ca tine însuți îmbinarea lor. Ceilalți oameni interni pot avea copii locale, cum ar fi tine și care se îmbină - dar dacă aveți aceste patch-uri din rețea, ar fi mai bine ca o persoană să se ocupe de ele, astfel încât nimeni să nu fie confuz, dar asta ar trebui să consideră-te.
Sincronizând altfel, ați crea un patch și le trimiteți prin e-mail sau puteți obține o unitate flash la dezvoltatorii de la distanță pentru a le patch-uri. Vei avea nevoie de o bună comunicare în echipă, sunt recunoscător că nu sunt în pantofii tăi.
Acestea sunt singurele mele sugestii - bine, evident, adu-le o conexiune VPN! Mi-ar plăcea să aud cum merge, ce planuri se stabilizează într-un canal săptămânal și așa mai departe.
Patch-urile sunt o soluție simplă și versatilă.
Pentru a vă deplasa în jurul unor grupuri mai mari de modificări (în special schimbări binare și fuzionări), Mercurial oferă pachete binare. Un pachet este în esență chestiunea binară trimisă în rețea atunci când faceți hg push
, dar aici este capturată într-un fișier.
Să ne imaginăm că am obținut o clonă cumva (prin flash, DVD, etc.). Apelați-l upstream
. Apoi fac oa doua clonă, o numesc devel
. Fac toate dezvoltările mele în devel
și fac numeroase comitete, fuzionări etc. De când se distribuie Mercurial pot face toate acestea offline.
Pentru a vedea care seturi de modificări lipsesc în upstream
, o fac
% hg outgoing ../upstream
Când am ceva de trimis, pot folosi
% hg bundle changes.hg ../upstream
pentru a obține un fișier comprimat binar care conține setul de modificări, inclusiv toate datele meta. Pot să ard acest fișier pe un CD și să îl trimit prin poștă ...
Destinatarul pachetului poate face
% hg incoming changes.hg
pentru a vedea lista de modificări și
% hg pull changes.hg
să despachetați și să adăugați seturile de modificări în depozitul său. Apoi, cel mai probabil va trebui să fuzioneze - este exact ca și cum ar fi tras direct din depozit prin HTTP sau SSH.
Rețineți că depozitul upstream
este utilizat numai ca o modalitate convenabilă de a vă aminti care seturi de modificări se găsesc deja în depozitul din amonte. De asemenea, puteți să notați ID-ul modificărilor și să utilizați hg bundle --base
atunci când grupați pentru a specifica setul de modificări de bază (comun). Consultați hg help bundle
sau uitați-vă în wiki .