¿Cómo cambio el nombre de un repositorio de Git creado con gitolite?


85

Creé un repositorio de Git usando gitolite. Ahora me gustaría cambiar el nombre de ese repositorio.

¿Cómo puedo hacer esto?

En el archivo Léame de gitolite se dice que no debería trabajar directamente en el servidor. Pero supongo que tengo que trabajar un poco en el servidor en este caso, ¿verdad?


Buena pregunta y gracias por el comentario sobre mi respuesta. Hoy necesitaba esta respuesta;)

Respuestas:


135

Como se indica en el manual de administración básica de gitolite :

cambiar el nombre de un repositorio

Esto es similar; no hay código para hacer esto gitolite. Lo que haces es:

  • inicie sesión en el servidor, cd $REPO_BASE(predeterminado:) cd ~/repositories, y

    mv old-name.git new-name.git

  • de nuevo en su clon de gitolite-admin, edite conf/gitolite.confy reemplace todas las apariciones de old-namecon new-name. Luego agregue, confirme y presione como de costumbre.

El orden de estos 2 pasos es importante; no los invierta :-)

Un tercer paso es necesario en gitolite3:

  • edite el archivo gl-confen el repositorio y cambie el nombre del repositorio por el nuevo nombre

Y, por supuesto, cada usuario debe actualizar su configuración de clonación para que apunte al nuevo nombre del repositorio.


7
En gitolite3 también tienes que editar gl-confy cambiar el nombre del repositorio.
Fernando Correia

4
no olvide configurar la URL remota de su copia local del repositorio con el nuevo nombre:, git remote set-url git@your.server:new-name.gitluego haga una git fetchpara asegurarse de que no haya errores.
cneuro

Hice los dos primeros pasos en el orden incorrecto antes de llegar a esta respuesta. FYI también funcionó, solo tenía que hacerlo rm -r new-name.gitantes del mvcomando.
Arnaud P

9

No estoy familiarizado con gitolite específicamente, pero un enfoque que podría funcionar es crear un repositorio completamente nuevo con el nombre correcto, insertar su código en ese y luego eliminar el anterior.


Por lo que sé, debería guardar la historia. +1

1
Eliminar el antiguo repositorio, crear un nuevo repositorio y empujar el contenido del antiguo repositorio al nuevo funciona. ¡Gracias!
Patrick

Aquí están los comandos para lograr esto (asume que NewRepo ya está creado en Gitolite): // En el antiguo repositorio $ git remote agregue <remote-moniker> NewRepo $ git push --all --force NewRepo // En el nuevo repositorio $ git pull No es necesario piratear la configuración de gitolite, y se conserva todo el historial :)
Matthew Skelton

0

Usando Greg Hewgill como idea, posiblemente pueda cambiar el nombre del repositorio en el archivo de configuración. Es posible que desee probar primero en un repositorio ficticio. Mi sospecha es que se eliminará el nombre anterior, se creará el nuevo y debe actualizar sus orígenes localmente y luego presionar.


Desafortunadamente, cambiar el nombre del repositorio en el archivo de configuración no funciona. gitlolite agrega el nuevo repositorio pero no elimina el anterior. Sin embargo, usar la idea de Greg funciona.
Patrick

@Patrick: Es bueno saberlo, no he necesitado cambiar el nombre o eliminar uno.

-2

Un enfoque limpio es crear el nuevo repositorio vacío y luego hacer lo siguiente:

Suponiendo que lo viejo es VIEJO y lo nuevo (vacío) es NUEVO:

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

O puede usar directamente el repositorio remoto para OLD:

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

Esto mantendrá todo el historial y permitirá que gitolite maneje sus aspectos internos. Además, tendrá que actualizar gitolite-admin, pero no hay limitación en el orden.

Esto también funciona de forma remota sin problemas.

Sin embargo, la eliminación del repositorio VIEJO debe realizarse según las instrucciones de gitolite (localmente).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.