Git
Rudel folosește operațiuni PHP native Git prin Pitmaster. Nu necesită binarul gazdă git. Remoturile sunt accesate prin HTTP(S) sau SSH.
Fiecare sandbox are un singur nume de ramură, rudel/{sandbox-id}, folosit de toate fluxurile de lucru Git de mai jos.
Clonați un remote într-un sandbox nou
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
Rudel creează sandboxul, clonează remote-ul în themes/my-theme din directorul sandboxului (numele directorului este numele depozitului), creează ramura rudel/{id} pornind de la ramura implicită și o descarcă. Cu --type=plugin, checkout-ul se face în plugins/my-theme. Remote-ul, directorul și ramura de bază sunt salvate în sandbox pentru push-uri ulterioare. Dacă clonarea eșuează, sandboxul este păstrat, iar comanda afișează un avertisment.
Checkout-ul este o copie de lucru pentru wp rudel push. În versiunea actuală, sandboxul nu o servește (issue #11):
- Sandboxul servește tema aleasă cu
--themesau tema activă a gazdei, copiată de pe gazdă la crearea sandboxului.--themetrebuie să indice o temă instalată pe gazdă, așadar un checkout este servit numai când numele depozitului corespunde acelui slug, iar clonarea scrie apoi în directorul copiat al temei. - Pluginurile se încarcă întotdeauna din directorul de pluginuri al gazdei, astfel că un checkout
--type=pluginnu rulează niciodată.
Arbori de lucru asociați
Când clonați un sandbox al cărui director de temă este un depozit Git, Rudel creează un arbore de lucru asociat pentru noul sandbox, în loc să copieze fișierele:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
Arborele de lucru folosește ramura rudel/{new-id}. Rudel îl înregistrează în metadatele noului sandbox sub un nume explicit de arbore de lucru, bazat pe ID-ul sandboxului, tipul de conținut și slugul temei, astfel încât două sandboxuri care folosesc același slug de temă să nu intre în conflict. La distrugerea sandboxului, arborele de lucru este eliminat, iar ramura sa este ștearsă.
wp rudel cleanup --merged ia în considerare numai acești arbori de lucru asociați. Consultați Cleanup.
Împingeți modificările
wp rudel push feature-x-3be7 --message="Update checkout template"
push creează commit pentru fiecare modificare din checkout și împinge ramura rudel/{id} către origin. Returnează No changes to push. când nu există modificări.
--git=<remote>setează remote-ul când nu este salvat niciunul; după primul push reușit, acesta este memorat.--dir=<dir>selectează directorul relativ la directorul sandboxului, de exempluthemes/my-theme. Valoarea implicită este directorul salvat de--gitsau, în lipsa acestuia, întregul director al sandboxului.--messageare valoarea implicităUpdate from Rudel sandbox.
Din PHP, Rudel::push( $id, $remote_url, $message, $subdir ) face același lucru și declanșează hook-urile rudel_*_environment_push.
Identitatea commit-ului
Dacă în configurația Git a checkout-ului lipsesc user.name sau user.email, Rudel setează Rudel și rudel@localhost. Definiți RUDEL_GIT_AUTHOR_NAME și RUDEL_GIT_AUTHOR_EMAIL în wp-config.php pentru a folosi alte valori.