Ugrás a tartalomhoz

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

Shell
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 --theme paranccsal 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=plugin checkout 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:

Shell
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

Shell
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 --message alapértelmezett értéke Update 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.