Git
Rudel používa operácie PHP-native Git prostredníctvom Pitmaster. Nevyžaduje binárny súbor git hostiteľa. Vzdialené repozitáre sú dostupné cez HTTP(S) alebo SSH.
Každý sandbox má jeden názov vetvy, rudel/{sandbox-id}, ktorý používajú všetky nižšie uvedené pracovné postupy Git.
Klonovanie vzdialeného repozitára do nového sandboxu
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
Rudel vytvorí sandbox, naklonuje vzdialený repozitár do themes/my-theme v adresári sandboxu (názov adresára je názov repozitára), vytvorí vetvu rudel/{id} z predvolenej vetvy a prepne sa na ňu. Pomocou --type=plugin sa namiesto toho repozitár naklonuje do plugins/my-theme. Vzdialený repozitár, adresár a základná vetva sa uložia do sandboxu na neskoršie odosielanie zmien. Ak klonovanie zlyhá, sandbox sa zachová a príkaz vypíše upozornenie.
Pracovná kópia slúži na prácu s wp rudel push. V aktuálnom vydaní ju sandbox neposkytuje (problém č. 11):
- Sandbox poskytuje tému vybranú pomocou
--themealebo aktívnu tému hostiteľa, skopírovanú z hostiteľa pri vytvorení sandboxu.--thememusí označovať tému nainštalovanú na hostiteľovi. Pracovná kópia sa teda poskytuje len vtedy, keď sa názov repozitára zhoduje s týmto slugom a klonovanie zapisuje do skopírovaného adresára témy. - Doplnky sa vždy načítavajú z adresára doplnkov hostiteľa, preto sa pracovná kópia
--type=pluginnikdy nespustí.
Prepojené pracovné stromy
Keď klonujete sandbox, ktorého adresár témy je repozitárom Git, Rudel namiesto kopírovania súborov vytvorí pre nový sandbox prepojený pracovný strom:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
Pracovný strom je na vetve rudel/{new-id}. Rudel ho zaznamená v metadátach nového sandboxu pod výslovným názvom pracovného stromu založeným na ID sandboxu, type obsahu a slugu témy, aby sa sandboxy používajúce rovnaký slug témy nedostali do konfliktu. Zničením sandboxu sa odstráni pracovný strom aj jeho vetva.
wp rudel cleanup --merged zohľadňuje iba tieto prepojené pracovné stromy. Pozrite si časť Čistenie.
Odoslanie zmien
wp rudel push feature-x-3be7 --message="Update checkout template"
push potvrdí každú zmenu v pracovnej kópii a odošle vetvu rudel/{id} do origin. Ak sa nič nezmenilo, vráti No changes to push..
--git=<remote>nastaví vzdialený repozitár, ak ešte nie je uložený; po prvom úspešnom odoslaní sa zapamätá.--dir=<dir>vyberie adresár relatívne k adresáru sandboxu, napríkladthemes/my-theme. Predvolene sa použije adresár uložený pomocou--git, inak celý adresár sandboxu.--messagemá predvolenú hodnotuUpdate from Rudel sandbox.
Z PHP vykoná Rudel::push( $id, $remote_url, $message, $subdir ) to isté a spustí hooky rudel_*_environment_push.
Identita potvrdení zmien
Ak v konfigurácii Git pracovnej kópie chýba user.name alebo user.email, Rudel zapíše Rudel a rudel@localhost. Ak chcete použiť iné hodnoty, definujte RUDEL_GIT_AUTHOR_NAME a RUDEL_GIT_AUTHOR_EMAIL v wp-config.php.