Git
A Rudel a PHP-natív Git műveleteket a Pitmaster segítségével végzi. Nincs szükség a gazdagép git binárisára. A távoli tárolók HTTP(S) vagy SSH útján érhetők el.
Minden sandboxhoz egyetlen ág tartozik: rudel/{sandbox-id}. Ezt használja az alábbi összes Git munkafolyamat.
Távoli tároló klónozása új sandboxba
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
A Rudel létrehozza a sandboxot, a távoli tárolót a sandbox könyvtárán belüli themes/my-theme helyre klónozza (a könyvtár neve a tároló neve lesz), létrehozza a rudel/{id} ágat az alapértelmezett ágból, majd átvált arra. A --type=plugin használatával a checkout helye plugins/my-theme lesz. A rendszer elmenti a távoli tárolót, a könyvtárat és az alapágat a sandboxhoz, hogy később lehessen rá feltölteni. Sikertelen klónozás esetén a sandbox megmarad, és a parancs figyelmeztetést jelenít meg.
A checkout az wp rudel push számára készült munkapéldány. A jelenlegi kiadás nem szolgálja ki (11. számú probléma):
- A sandbox a
--themeparanccsal kiválasztott témát, vagy a gazdagép aktív témáját szolgálja ki; a témát a létrehozáskor a gazdagépről másolja. A--themeértékének a gazdagépen telepített téma nevét kell megadnia, így a checkout csak akkor szolgálható ki, ha a tároló neve megegyezik ezzel a sluggal, és a klónozás a másolt témakönyvtárba ír. - A bővítmények mindig a gazdagép bővítménykönyvtárából töltődnek be, ezért a
--type=plugincheckout nem fut.
Kapcsolt munkafák
Ha olyan sandboxot klónoz, amelynek témakönyvtára Git tároló, a Rudel fájlmásolás helyett kapcsolt munkafát hoz létre az új sandboxhoz:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
A munkafa a rudel/{new-id} ágon található. A Rudel az új sandbox metaadataiban rögzíti, kifejezetten a sandboxazonosító, a tartalomtípus és a téma slugja alapján képzett munkafanév alatt, így az azonos téma slugot használó sandboxok nem ütköznek. A sandbox megsemmisítése eltávolítja a munkafát és törli annak ágát.
A wp rudel cleanup --merged csak ezeket a kapcsolt munkafákat veszi figyelembe. Lásd: Takarítás.
Változások feltöltése
wp rudel push feature-x-3be7 --message="Update checkout template"
A push minden módosítást véglegesít a checkoutban, majd feltölti a rudel/{id} ágat ide: origin. Ha nincs változás, a No changes to push. értékkel tér vissza.
- A
--git=<remote>beállítja a távoli tárolót, ha még nincs eltárolva; az első sikeres feltöltés után megjegyzi. - A
--dir=<dir>választja ki a sandbox könyvtárához képesti könyvtárat, például:themes/my-theme. Alapértelmezés szerint a--gitáltal eltárolt könyvtárat használja, ennek hiányában a teljes sandbox könyvtárat. - A
--messagealapértelmezett értékeUpdate from Rudel sandbox.
A PHP környezetben a Rudel::push( $id, $remote_url, $message, $subdir ) ugyanezt végzi, és meghívja a rudel_*_environment_push hookokat.
Véglegesítési azonosító
Ha a checkout Git konfigurációjában nincs user.name vagy user.email, a Rudel beírja a Rudel és rudel@localhost értéket. Más értékek használatához definiálja a RUDEL_GIT_AUTHOR_NAME és RUDEL_GIT_AUTHOR_EMAIL változót a wp-config.php fájlban.