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ėžę
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ėžę.--themeturi 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=plugindarbinis 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į:
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
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.--messagenumatytoji reikšmė yraUpdate 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.