Preskoči na vsebino

Git

Rudel izvaja izvorne operacije Git v PHP prek Pitmaster. Ne potrebuje gostiteljeve izvršljive datoteke git. Do oddaljenih repozitorijev dostopa prek HTTP(S) ali SSH.

Vsak peskovnik ima eno ime veje, rudel/{sandbox-id}, ki se uporablja v vseh spodnjih potekih dela Git.

Kloniranje oddaljenega repozitorija v nov peskovnik

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

Rudel ustvari peskovnik, klonira oddaljeni repozitorij v themes/my-theme znotraj imenika peskovnika (ime imenika je ime repozitorija), ustvari vejo rudel/{id} iz privzete veje in jo prevzame. Z možnostjo --type=plugin se prevzem izvede v plugins/my-theme. Oddaljeni repozitorij, imenik in osnovna veja se shranijo v peskovnik za poznejše pošiljanje sprememb. Če kloniranje ne uspe, se peskovnik ohrani, ukaz pa izpiše opozorilo.

Prevzeta kopija je delovna kopija za wp rudel push. V trenutni izdaji je peskovnik ne streže (issue #11):

  • Peskovnik streže temo, izbrano z možnostjo --theme, ali aktivno temo gostitelja, ki se kopira z gostitelja ob ustvarjanju peskovnika. Možnost --theme mora določiti temo, nameščeno na gostitelju, zato se prevzeta kopija streže le, če se ime repozitorija ujema z oznako teme in kloniranje nato zapiše v kopirani imenik teme.
  • Vtičniki se vedno naložijo iz imenika vtičnikov gostitelja, zato se prevzeta kopija --type=plugin nikoli ne zažene.

Povezani delovni imeniki

Ko klonirate peskovnik, katerega imenik s temo je repozitorij Git, Rudel za novi peskovnik ustvari povezan delovni imenik namesto kopije datotek:

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

Delovni imenik je v veji rudel/{new-id}. Rudel ga zabeleži v metapodatkih novega peskovnika pod izrecnim imenom delovnega imenika, ki temelji na ID-ju peskovnika, vrsti vsebine in oznaki teme, zato se peskovnika z isto oznako teme ne prekrivata. Ob uničenju peskovnika se delovni imenik odstrani, njegova veja pa izbriše.

wp rudel cleanup --merged upošteva samo te povezane delovne imenike. Glejte Čiščenje.

Pošiljanje sprememb

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

push potrdi vse spremembe v prevzeti kopiji in pošlje vejo rudel/{id} v origin. Če ni sprememb, vrne No changes to push..

  • --git=<remote> nastavi oddaljeni repozitorij, če še ni shranjen; po prvem uspešnem pošiljanju se shrani.
  • --dir=<dir> izbere imenik glede na imenik peskovnika, na primer themes/my-theme. Privzeto uporabi imenik, shranjen z ukazom --git, sicer pa celoten imenik peskovnika.
  • --message je privzeto nastavljen na Update from Rudel sandbox.

V ukazu PHP Rudel::push( $id, $remote_url, $message, $subdir ) izvede enako in sproži kavlje rudel_*_environment_push.

Identiteta potrjevalca

Če prevzeta kopija v konfiguraciji Git nima user.name ali user.email, Rudel zapiše Rudel in rudel@localhost. V wp-config.php določite RUDEL_GIT_AUTHOR_NAME in RUDEL_GIT_AUTHOR_EMAIL, če želite uporabiti druge vrednosti.