Pereiti prie turinio

Git

Rudel naudoja PHP pagrįstas Git operacijas per Pitmaster. Pagrindinio kompiuterio git dvejetainio failo nereikia. Nuotolinės saugyklos pasiekiamos per HTTP(S) arba SSH.

Kiekviena smėlio dėžė turi vieną šakos pavadinimą – rudel/{sandbox-id}, kurį naudoja visos toliau aprašytos Git darbo eigos.

Nuotolinės saugyklos klonavimas į naują smėlio dėžę

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

Rudel sukuria smėlio dėžę, klonuoja nuotolinę saugyklą į themes/my-theme smėlio dėžės kataloge (katalogo pavadinimas sutampa su saugyklos pavadinimu), sukuria šaką rudel/{id} pagal numatytąją šaką ir ją išsiregistruoja. Naudojant --type=plugin, išsiregistravimas atliekamas į plugins/my-theme. Nuotolinės saugyklos, katalogo ir bazinės šakos duomenys išsaugomi smėlio dėžėje, kad vėliau būtų galima įkelti pakeitimus. Jei klonavimas nepavyksta, smėlio dėžė paliekama, o komanda pateikia įspėjimą.

Šis darbinis katalogas yra darbinė wp rudel push kopija. Dabartinėje laidoje smėlio dėžė jo neteikia (problema #11):

  • Smėlio dėžė naudoja temą, pasirinktą su --theme, arba pagrindinio kompiuterio aktyvią temą, nukopijuotą iš jo kuriant smėlio dėžę. --theme turi nurodyti pagrindiniame kompiuteryje įdiegtą temą, todėl darbinis katalogas bus naudojamas tik tada, jei saugyklos pavadinimas sutaps su tos temos identifikatoriumi ir klonuojant failai bus įrašyti į nukopijuotą temos katalogą.
  • Papildiniai visada įkeliami iš pagrindinio kompiuterio papildinių katalogo, todėl --type=plugin darbinis katalogas niekada nevykdomas.

Susieti darbiniai medžiai

Kai klonuojate smėlio dėžę, kurios temos katalogas yra Git saugykla, Rudel užuot kopijavęs failus sukuria naujai smėlio dėžei susietą darbinį medį:

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

Darbinis medis yra šakoje rudel/{new-id}. Rudel įrašo jį į naujos smėlio dėžės metaduomenis, suteikdamas aiškų pavadinimą pagal smėlio dėžės ID, turinio tipą ir temos identifikatorių, kad nesusidurtų dvi smėlio dėžės, naudojančios tą patį temos identifikatorių. Sunaikinus smėlio dėžę, darbinis medis pašalinamas, o jo šaka ištrinama.

wp rudel cleanup --merged atsižvelgia tik į šiuos susietus darbinius medžius. Žr. Valymas.

Pakeitimų įkėlimas

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

push patvirtina visus darbinio katalogo pakeitimus ir įkelia šaką rudel/{id} į origin. Jei pakeitimų nėra, grąžinama No changes to push..

  • --git=<remote> nustato nuotolinę saugyklą, jei ji dar neišsaugota; po pirmojo sėkmingo įkėlimo ji įsimenama.
  • --dir=<dir> parenka katalogą, nurodytą santykiniu keliu nuo smėlio dėžės katalogo, pavyzdžiui, themes/my-theme. Numatyta naudojamas katalogas, išsaugotas su --git, o jei jo nėra – visas smėlio dėžės katalogas.
  • --message numatytoji reikšmė yra Update from Rudel sandbox.

Iš PHP Rudel::push( $id, $remote_url, $message, $subdir ) atlieka tą patį veiksmą ir iškviečia rudel_*_environment_push kabliukus.

Pateikėjo tapatybė

Jei darbinio katalogo Git konfigūracijoje nėra user.name arba user.email, Rudel įrašo Rudel ir rudel@localhost. Norėdami naudoti kitas reikšmes, faile wp-config.php apibrėžkite RUDEL_GIT_AUTHOR_NAME ir RUDEL_GIT_AUTHOR_EMAIL.