Siirry sisältöön

Git

Rudel käyttää PHP-natiiveja Git-toimintoja Pitmaster-palvelun kautta. Isännän git-binääritiedostoa ei tarvita. Etätietovarastoihin muodostetaan yhteys HTTP(S)- tai SSH-yhteydellä.

Kullakin eristysympäristöllä on yksi haaran nimi, rudel/{sandbox-id}, jota käytetään kaikissa alla kuvatuissa Git-työnkuluissa.

Kloonaa etätietovarasto uuteen eristysympäristöön

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

Rudel luo eristysympäristön, kloonaa etätietovaraston hakemistoon themes/my-theme sen sisällä (hakemiston nimi on tietovaraston nimi), luo oletushaarasta haaran rudel/{id} ja ottaa sen käyttöön. Valitsimella --type=plugin checkout sijoitetaan sen sijaan kohteeseen plugins/my-theme. Etätietovarasto, hakemisto ja pohjahaara tallennetaan eristysympäristöön myöhempiä lähetyksiä varten. Jos kloonaus epäonnistuu, eristysympäristö säilytetään ja komento tulostaa varoituksen.

Checkout on kohteen wp rudel push työkopio. Nykyisessä julkaisussa eristysympäristö ei tarjoa sitä (ongelma #11):

  • Hiekkalaatikossa käytetään teemaa, joka on valittu kohdassa --theme, tai palvelimen aktiivista teemaa. Teema kopioidaan palvelimelta hiekkalaatikkoa luotaessa. --theme-kohdassa on ilmoitettava palvelimelle asennettu teema, joten uloskirjaus tarjotaan vain, jos tietovaraston nimi vastaa kyseistä tunnusta, ja klooni kirjoittaa sitten kopioituun teemahakemistoon.
  • Lisäosat ladataan aina palvelimen lisäosahakemistosta, joten --type=plugin-uloskirjaus ei koskaan ole käytössä.

Linkitetyt työhakemistot

Kun kloonaat hiekkalaatikon, jonka teemahakemisto on Git-tietovarasto, Rudel luo uudelle hiekkalaatikolle linkitetyn työhakemiston tiedostojen kopioinnin sijaan:

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

Työhakemisto on haarassa rudel/{new-id}. Rudel tallentaa sen uuden hiekkalaatikon metatietoihin yksilöllisellä työhakemiston nimellä, joka perustuu hiekkalaatikon tunnukseen, sisältötyyppiin ja teeman tunnukseen, jotta kaksi samaa teematunnusta käyttävää hiekkalaatikkoa eivät törmää toisiinsa. Hiekkalaatikon tuhoaminen poistaa työhakemiston ja sen haaran.

wp rudel cleanup --merged huomioi vain nämä linkitetyt työhakemistot. Katso Siivous.

Muutosten lähettäminen

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

push tekee commitin kaikista uloskirjauksen muutoksista ja lähettää haaran rudel/{id} kohteeseen origin. Se palauttaa arvon No changes to push., jos muutoksia ei ole.

  • --git=<remote> asettaa etäpalvelimen, jos sitä ei ole tallennettu; ensimmäisen onnistuneen lähetyksen jälkeen se muistetaan.
  • --dir=<dir> valitsee hiekkalaatikkohakemistoon suhteutetun hakemiston, esimerkiksi themes/my-theme. Oletuksena käytetään hakemistoa, jonka --git tallensi; muussa tapauksessa käytetään koko hiekkalaatikkohakemistoa.
  • --message-oletusarvo on Update from Rudel sandbox.

Komennosta PHP lähtien Rudel::push( $id, $remote_url, $message, $subdir ) tekee saman ja käynnistää rudel_*_environment_push-koukut.

Commitin tekijän tiedot

Jos uloskirjauksen Git-asetuksissa ei ole arvoa user.name tai user.email, Rudel kirjoittaa arvot Rudel ja rudel@localhost. Määritä arvot RUDEL_GIT_AUTHOR_NAME ja RUDEL_GIT_AUTHOR_EMAIL kohteessa wp-config.php, jos haluat käyttää muita arvoja.