Hoppa till innehåll

Git

Rudel använder PHP-inbyggda Git-åtgärder via Pitmaster. Värdens binärfil för git behövs inte. Fjärrlager nås via HTTP(S) eller SSH.

Varje sandlåda har ett enda grennamn, rudel/{sandbox-id}, som används av alla Git-arbetsflöden nedan.

Klona ett fjärrlager till en ny sandlåda

Shell
wp rudel create --name=feature-x --git=https://example.test/my-theme.git

Rudel skapar sandlådan, klonar fjärrlagret till themes/my-theme i sandlådans katalog (katalognamnet är lagrets namn), skapar grenen rudel/{id} från standardgrenen och checkar ut den. Med --type=plugin sker utcheckningen i plugins/my-theme i stället. Fjärrlagret, katalogen och basgrenen sparas i sandlådan för senare pushar. Om kloningen misslyckas behålls sandlådan och kommandot visar en varning.

Utcheckningen är en arbetskopia för wp rudel push. I den aktuella versionen tillhandahåller sandlådan den inte (ärende #11):

  • Sandlådan använder temat som valts med --theme, eller värdens aktiva tema, kopierat från värden när sandlådan skapas. --theme måste ange ett tema som är installerat på värden, så en utcheckning används bara om lagrets namn motsvarar den sluggen och kloningen sedan skriver till den kopierade temakatalogen.
  • Tillägg läses alltid in från värdens tilläggskatalog, så en --type=plugin-utcheckning körs aldrig.

Länkade arbetskataloger

När du klonar en sandlåda vars temakatalog är ett Git-lager skapar Rudel en länkad arbetskatalog för den nya sandlådan i stället för att kopiera filer:

Shell
wp rudel create --name=feature-y --clone-from=feature-x-3be7

Arbetskatalogen ligger på grenen rudel/{new-id}. Rudel registrerar den i den nya sandlådans metadata under ett uttryckligt arbetskatalognamn baserat på sandlådans ID, innehållstyp och temaslug, så att två sandlådor med samma temaslug inte krockar. När sandlådan tas bort raderas arbetskatalogen och dess gren.

wp rudel cleanup --merged tar bara hänsyn till dessa länkade arbetskataloger. Se Rensning.

Skicka ändringar

Shell
wp rudel push feature-x-3be7 --message="Update checkout template"

push checkar in alla ändringar i utcheckningen och skickar grenen rudel/{id} till origin. Det returnerar No changes to push. om inget har ändrats.

  • --git=<remote> anger fjärrlagret om inget har sparats; efter den första lyckade pushen sparas det.
  • --dir=<dir> väljer katalogen relativt till sandlådans katalog, till exempel themes/my-theme. Som standard används katalogen som sparats av --git, annars hela sandlådans katalog.
  • --message har som standard värdet Update from Rudel sandbox.

Från PHP gör Rudel::push( $id, $remote_url, $message, $subdir ) samma sak och kör rudel_*_environment_push-hookarna.

Incheckningsidentitet

Om utcheckningen saknar user.name eller user.email i sin Git-konfiguration skriver Rudel in Rudel och rudel@localhost. Ange RUDEL_GIT_AUTHOR_NAME och RUDEL_GIT_AUTHOR_EMAIL i wp-config.php för att använda andra värden.