Saltar al contenido

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

Shell
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 --theme o el tema activo del host, copiado del host al crear el entorno aislado. --theme debe 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=plugin nunca 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:

Shell
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

Shell
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 ejemplo themes/my-theme. De forma predeterminada, usa el directorio guardado por --git o, si no hay ninguno, todo el directorio del entorno aislado.
  • --message tiene Update from Rudel sandbox como 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.