Към съдържанието

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, за да използвате други стойности.