Git
Rudel използва операции PHP чрез Pitmaster за Git. Не изисква двоичния файл git на основната инсталация. Отдалечените хранилища се достъпват през HTTP(S) или SSH.
Всеки пясъчник има едно име на клон, rudel/{sandbox-id}, използвано във всички описани по-долу работни процеси на Git.
Клониране на отдалечено хранилище в нов пясъчник
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
Rudel създава пясъчника, клонира отдалеченото хранилище в themes/my-theme в директорията на пясъчника (името на директорията е името на хранилището), създава клона rudel/{id} от клона по подразбиране и го извлича. С --type=plugin клонирането се записва в plugins/my-theme. Отдалеченото хранилище, директорията и базовият клон се съхраняват в пясъчника за бъдещо изпращане. Ако клонирането е неуспешно, пясъчникът се запазва и командата извежда предупреждение.
Клонирането е работно копие за wp rudel push. В текущата версия пясъчникът не го обслужва (issue #11):
- Пясъчникът обслужва темата, избрана с
--theme, или активната тема на основната инсталация, копирана от нея при създаването на пясъчника.--themeтрябва да указва тема, инсталирана в основната инсталация, така че клониране се обслужва само когато името на хранилището съвпада с този идентификатор и клонирането записва в копираната директория на темата. - Разширенията винаги се зареждат от директорията за разширения на основната инсталация, затова клонирането
--type=pluginникога не се изпълнява.
Свързани работни дървета
Когато клонирате пясъчник, чиято директория на темата е хранилище Git, Rudel създава свързано работно дърво за новия пясъчник вместо да копира файлове:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
Работното дърво е в клона rudel/{new-id}. Rudel го записва в метаданните на новия пясъчник под изрично име на работно дърво, базирано на ID на пясъчника, типа съдържание и идентификатора на темата, така че два пясъчника с един и същ идентификатор на тема да не се сблъскват. Унищожаването на пясъчника премахва работното дърво и изтрива клона му.
wp rudel cleanup --merged взема предвид само тези свързани работни дървета. Вижте Cleanup.
Изпращане на промените
wp rudel push feature-x-3be7 --message="Update checkout template"
push предава всяка промяна в клонирането и изпраща клона rudel/{id} към origin. Връща No changes to push., ако няма промени.
--git=<remote>задава отдалеченото хранилище, ако не е запазено; след първото успешно изпращане то се запомня.--dir=<dir>избира директорията спрямо директорията на пясъчника, напримерthemes/my-theme. По подразбиране се използва директорията, запазена от--git, или цялата директория на пясъчника.--messageпо подразбиране еUpdate from Rudel sandbox.
От PHP, Rudel::push( $id, $remote_url, $message, $subdir ) прави същото и задейства куките rudel_*_environment_push.
Идентичност при предаване на промени
Ако в конфигурацията на клонирането Git липсва user.name или user.email, Rudel записва Rudel и rudel@localhost. Задайте RUDEL_GIT_AUTHOR_NAME и RUDEL_GIT_AUTHOR_EMAIL в wp-config.php, за да използвате други стойности.