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
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ą
--themealbo aktywny motyw hosta, skopiowany z hosta podczas tworzenia piaskownicy.--thememusi 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=pluginnigdy 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:
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
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ładthemes/my-theme. Domyślnie używa katalogu zapisanego przez--git, a w przeciwnym razie całego katalogu piaskownicy.- Domyślną wartością
--messagejestUpdate 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.