Saltar al contenido

¿Cómo uso los espacios de nombres de git localmente?

Solución:

Los espacios de nombres de Git solo están diseñados para funcionar con repositorios remotos, no localmente (https://github.com/git/git/commit/6b01ecfe22f0b6ccb9665cd8d85d78a381fecffc). La mayoría de las operaciones que funcionan con espacios de nombres git parecen funcionar en operaciones que pasan por las funciones git-upload-pack y git-receive-pack. Es por eso que la documentación sugiere si desea probarlo localmente para fingir que piensa que está extrayendo de una máquina remota, por ejemplo: git clone ext::'git --namespace=foo %s /tmp/prefixed.git'

así que comandos como

git --namespace foo add
git --namespace foo commit
git --namespace foo branch

Todos esencialmente no hacen nada. Las únicas operaciones que parecen tener algún efecto son clonar / recuperar / tirar y empujar.

Para aprovechar los espacios de nombres de la manera que espera, tendrá que configurar su propio backend git que sea capaz de traducir argumentos de URL a la variable GIT_NAMESPACE y pasarlos a git-http-backend o algo similar. La documentación recomienda lo siguiente en su configuración de apache:

Para servir múltiples repositorios de diferentes gitnamespaces en un solo repositorio:

SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1
ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1

También tenga en cuenta que lo que no dice esta documentación es que lo que está sucediendo aquí es extraer la variable GIT_NAMESPACE de una URL y establecer una variable de entorno que espera git-http-backend. es decir http://myserver.com/git/namespace/repository.git. La parte ‘storage.git’ es un error tipográfico y no debería estar allí. Debo enviar un parche de documentación.

Aquí están la mayoría de las confirmaciones que crearon esta función. https://github.com/git/git/commits/398dd4bd039680ba98497fbedffa415a43583c16?author=joshtriplett

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *