Git
Rudel usa operaciones Git nativas de PHP mediante Pitmaster. No requiere el binario git del host. Se accede a los remotos mediante HTTP(S) o SSH.
Cada entorno aislado tiene un nombre de rama, rudel/{sandbox-id}, que usan todos los flujos de trabajo Git siguientes.
Clonar un remoto en un entorno aislado nuevo
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
Rudel crea el entorno aislado, clona el remoto en themes/my-theme dentro del directorio del entorno aislado (el nombre del directorio es el del repositorio), crea la rama rudel/{id} a partir de la rama predeterminada y la cambia. Con --type=plugin, el cambio se hace a plugins/my-theme. El remoto, el directorio y la rama base se guardan en el entorno aislado para futuros envíos. Si falla la clonación, el entorno aislado se conserva y el comando muestra una advertencia.
El cambio crea una copia de trabajo para wp rudel push. En la versión actual, el entorno aislado no la sirve (incidencia #11):
- El entorno aislado sirve el tema elegido con
--themeo el tema activo del host, copiado del host al crear el entorno aislado.--themedebe indicar un tema instalado en el host, así que la copia de trabajo solo se sirve si el nombre del repositorio coincide con ese slug y la clonación escribe después en el directorio del tema copiado. - Los complementos siempre se cargan desde el directorio de complementos del host, por lo que una copia de trabajo
--type=pluginnunca se ejecuta.
Áreas de trabajo vinculadas
Al clonar un entorno aislado cuyo directorio del tema es un repositorio Git, Rudel crea un área de trabajo vinculada para el nuevo entorno aislado en lugar de copiar los archivos:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
El área de trabajo está en la rama rudel/{new-id}. Rudel la registra en los metadatos del nuevo entorno aislado con un nombre explícito basado en el ID del entorno aislado, el tipo de contenido y el slug del tema, para que no haya conflictos entre dos entornos aislados que usan el mismo slug de tema. Al destruir el entorno aislado, se elimina el área de trabajo y se borra su rama.
wp rudel cleanup --merged solo tiene en cuenta estas áreas de trabajo vinculadas. Consulte Limpieza.
Enviar cambios
wp rudel push feature-x-3be7 --message="Update checkout template"
push confirma cada cambio de la copia de trabajo y envía la rama rudel/{id} a origin. Devuelve No changes to push. cuando no hay cambios.
--git=<remote>establece el remoto si no hay ninguno guardado; tras el primer envío correcto, se recuerda.--dir=<dir>elige el directorio relativo al directorio del entorno aislado, por ejemplothemes/my-theme. De forma predeterminada, usa el directorio guardado por--gito, si no hay ninguno, todo el directorio del entorno aislado.--messagetieneUpdate from Rudel sandboxcomo valor predeterminado.
Desde PHP, Rudel::push( $id, $remote_url, $message, $subdir ) hace lo mismo y ejecuta los hooks de rudel_*_environment_push.
Identidad de confirmación
Si la copia de trabajo no tiene user.name ni user.email en su configuración Git, Rudel escribe Rudel y rudel@localhost. Defina RUDEL_GIT_AUTHOR_NAME y RUDEL_GIT_AUTHOR_EMAIL en wp-config.php para usar otros valores.