Przejdź do treści

Git

Rudel używa operacji PHP-native Git za pośrednictwem Pitmaster. Nie wymaga binarnego pliku hosta git. Dostęp do zdalnych repozytoriów odbywa się przez HTTP(S) lub SSH.

Każda piaskownica ma jedną nazwę gałęzi, rudel/{sandbox-id}, używaną we wszystkich opisanych niżej przepływach pracy Git.

Sklonuj zdalne repozytorium do nowej piaskownicy

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

Rudel tworzy piaskownicę, klonuje zdalne repozytorium do themes/my-theme wewnątrz katalogu piaskownicy (nazwa katalogu jest nazwą repozytorium), tworzy gałąź rudel/{id} na podstawie domyślnej gałęzi i ją przełącza. Z opcją --type=plugin kopia robocza trafia zamiast tego do plugins/my-theme. Zdalne repozytorium, katalog i gałąź bazowa są zapisywane w piaskownicy, aby można było później wypychać zmiany. Jeśli klonowanie się nie powiedzie, piaskownica zostaje, a polecenie wyświetla ostrzeżenie.

Kopia robocza służy do pracy nad wp rudel push. W bieżącym wydaniu piaskownica jej nie udostępnia (zgłoszenie nr 11):

  • Piaskownica udostępnia motyw wybrany za pomocą --theme albo aktywny motyw hosta, skopiowany z hosta podczas tworzenia piaskownicy. --theme musi wskazywać motyw zainstalowany na hoście, więc kopia robocza jest udostępniana tylko wtedy, gdy nazwa repozytorium pasuje do tego sluga, a klonowanie zapisuje pliki w skopiowanym katalogu motywu.
  • Wtyczki są zawsze ładowane z katalogu wtyczek hosta, więc kopia robocza --type=plugin nigdy nie jest uruchamiana.

Powiązane drzewa robocze

Gdy klonujesz piaskownicę, której katalog motywu jest repozytorium Git, Rudel tworzy dla nowej piaskownicy powiązane drzewo robocze zamiast kopiować pliki:

Powłoka
wp rudel create --name=feature-y --clone-from=feature-x-3be7

Drzewo robocze używa gałęzi rudel/{new-id}. Rudel zapisuje je w metadanych nowej piaskownicy pod jawną nazwą drzewa roboczego, opartą na identyfikatorze piaskownicy, typie treści i slugu motywu, dzięki czemu piaskownice używające tego samego slugu motywu nie kolidują ze sobą. Zniszczenie piaskownicy usuwa drzewo robocze i jego gałąź.

wp rudel cleanup --merged uwzględnia tylko te powiązane drzewa robocze. Zobacz Czyszczenie.

Wypychaj zmiany

Powłoka
wp rudel push feature-x-3be7 --message="Update checkout template"

push zatwierdza każdą zmianę w kopii roboczej i wypycha gałąź rudel/{id} do origin. Zwraca No changes to push., jeśli nic się nie zmieniło.

  • --git=<remote> ustawia zdalne repozytorium, jeśli nie zostało zapisane; po pierwszym udanym wypchnięciu jest ono zapamiętywane.
  • --dir=<dir> wybiera katalog względem katalogu piaskownicy, na przykład themes/my-theme. Domyślnie używa katalogu zapisanego przez --git, a w przeciwnym razie całego katalogu piaskownicy.
  • Domyślną wartością --message jest Update from Rudel sandbox.

Z poziomu PHP Rudel::push( $id, $remote_url, $message, $subdir ) wykonuje to samo i uruchamia haki rudel_*_environment_push.

Tożsamość autora zatwierdzeń

Jeśli kopia robocza nie ma user.name ani user.email w konfiguracji Git, Rudel zapisuje Rudel i rudel@localhost. Ustaw RUDEL_GIT_AUTHOR_NAME i RUDEL_GIT_AUTHOR_EMAIL w wp-config.php, aby użyć innych wartości.