2011-02-18 33 views
6

Estoy intentando configurar gitolite en mi servidor (servidor Macos).Gitolite git clone error

he seguido las instrucciones del documento INSTALAR encontrar aquí: http://sitaramc.github.com/gitolite/doc/1-INSTALL.html

he instalado el método de la raíz.

Tengo todo configurado (configuración de la autenticación y pubkey gitolite por defecto ssh)

$ssh [email protected] info 
hello admin, the gitolite version here is v1.5.9.1-27-gb97115f 
the gitolite config gives you the following access: 
    R W gitolite-admin 
    @R_ @W_ testing 

De acuerdo con las instrucciones de instalación que debe ser capaz de hacer checkout de un repositorio.

Pero cuando intento de clonar el repositry gitolite-admin Me aparece un error:.


$ git clone [email protected]:gitolite-admin 
Cloning into gitolite-admin... 
Assertion failed: (argv0_path), function system_path, file exec_cmd.c, line 27. 
error: git-shell died of signal 6 
fatal: The remote end hung up unexpectedly 

Tengo la última versión de Git Git y gitolite v 1.7.3.4

¿Alguien puede ayudarme ?

Edición 1: añadido comando git clone antes del mensaje de error

+0

lo que es el comando git clone utiliza? – VonC

+0

git clone git @ server: gitolite-admin – skipper3k

+0

Intentaría clonar de esta manera: "git clone ssh: // git @ server/gitolie-admin", pero no sé si esta es la causa de su problema. –

Respuesta

0

no saben exactamente cuál es el problema con la instalación, sería útil saber las órdenes de usted ha ejecutado la instalación gitolite en su servidor .

recomiendo que lea estos dos enlaces, que eran útiles para mí cuando he instalado gitolite:

http://kris.me.uk/2010/09/30/git-repository-server-gitolite.html (especialmente éste)

http://progit.org/book/ch4-8.html

+0

Hice la instalación exacta como se describe en el 1. enlace. Me imagino que debe haber algo mal con mi configuración ssh? – skipper3k

+0

Quizás esto esté relacionado con tu problema: http://groups.google.com/group/gitolite/browse_thread/thread/937543a80c7753ed. ¿Estás utilizando un alojamiento compartido? –

+0

gracias, comprobaré esto y publicaré los resultados. – skipper3k

7

El OP skipper3kreports un problema con RUNTIME_PREFIX en Git, un poco similar a "git pull broken" pregunta:

I'm not sure whether RUNTIME_PREFIX is defined for you. But while nosing in the Makefile , I did notice that prefix defaults to $(HOME) . I suspect that this may be the cause of your problems.

The simple answer is to put this in ~/.bashrc :

export GIT_EXEC_PATH=/opt/local/libexec/git-core 

If you want to find out more about what's going on, you'll probably have to recompile git using port -d upgrade -f git-core (or similar) and look closely at the build log to see where prefix is being set.
Incidentally, port cat git-core shows heavy usage of ${prefix} .


Respuesta original:

En primer lugar, circunstancias surgió la versión más actualizada gitolite al día?
En https://github.com/sitaramc/gitolite/, debe considerar la rama 'pu'.

El installation documentation is then this one.


GitoliteV3 or 'g3' doc:

"Installation" consists of the following options:

  1. Keep the sources anywhere and use the full path to run the gitolite command.
  2. Keep the sources anywhere and symlink just the gitolite program to some directory on your $PATH.
  3. Copy the sources somewhere and use that path to run the gitolite command.

You can run the 'install' command in 3 different ways:

# option 1 
gitolite/install 

# option 2 
gitolite/install -ln 
# defaults to $HOME/bin, or use a specific directory: 
gitolite/install -ln /usr/local/bin 

# option 3 
gitolite/install -to /usr/local/gitolite/bin 

vieja respuesta de gitolite V2: En segundo lugar, yo prefiero el método "from-client method":

The advantage of this method is that it forces you to solve the ssh pubkey problem before attempting to install.
It works best if you have dedicated userids,

  • one on the server for installing gitolite,
  • and one on the client for administering it.

The disadvantage is that the admin user ends up with two keys

  • one for shell access (that he started with) and
  • one for gitolite access (which the script creates if needed).

Así que me gustaría crear un archivo ~/.ssh/config con los dos conjuntos diferentes de parámetros:

host gitolite 
    user git 
    hostname server 
    identityfile ~/.ssh/git 
host gitadmin 
    user git 
    hostname server 
    identityfile ~/.ssh/id_rsa (myaccount public key) 

El gitolite-admin sólo es visible por primera clave pública SSH:

C:\HOMEWARE\git>ssh gitolite 
hello git, the gitolite version here is v1.5.9-25-ga10287a 
the gitolite config gives you the following access: 
    R W  gitolite-admin 
    @R_ @W_  testing 
Connection to server closed. 

Con mi cuenta:

C:\HOMEWARE\git>ssh gitadmin 
hello myaccount, the gitolite version here is v1.5.9-25-ga10287a 
the gitolite config gives you the following access: 
    @R_ @W_  testing 
Connection to mccprdgit10 closed. 

Así:

C:\HOMEWARE\git>git clone gitolite:gitolite-admin 
Cloning into gitolite-admin... 
remote: Counting objects: 16, done. 
remote: Compressing objects: 100% (13/13), done. 
remote: Total 16 (delta 2), reused 0 (delta 0) 
Receiving objects: 100% (16/16), done. 
Resolving deltas: 100% (2/2), done. 
+0

Tnx, voy a probar este método. Te mantendré informado. – skipper3k

+0

Recibo un error con $ ssh gitadmin Error en la solicitud de asignación de PTY en el canal 0 – skipper3k

+0

¿Necesito alguna configuración especial de ssh para gitolite? – skipper3k

2

el problema estaba en el camino git fue compilado en mac. Tuve que compilar manualmente git sin el conjunto RUNTIME_PREFIX. Ahora funciona.

+0

Excelente. He actualizado mi respuesta para reflejar este problema. – VonC

+0

¿Cómo exactamente desarmaste RUNTIME_PREFIX? ¿Es eso lo mismo que construir sin 'make prefix =/bleh/bleh'? –

8

Parece que la solución correcta a este error es agregar

$ENV{GIT_EXEC_PATH} = "/usr/libexec/git-core"; 

a su archivo .gitolite.rc.

+0

Tenía el mismo problema. Esta es la solución más simple (y funcional), y tiene sentido. – p4010

0

Habiendo tratado esto por un tercer tiempo después de haber olvidado las dos primeras veces, creo que no es inusual.

$ git clone [email protected]:gitolite-admin 
Cloning into gitolite-admin... 
fatal: The remote end hung up unexpectedly 

Al menos una de las razones de esto es que el usuario gitolite imprescindible tener un intérprete de ingreso - hacer un usuario del sistema no funciona por alguna razón .. simplemente se cae, causando el error anterior.

Además, para la prueba de ssh, debe apagar los PTY en la línea de comandos ssh lo contrario, simplemente no funcionará - Creo que tal vez trabajó con versiones anteriores de ssh, pero no lo hace en cualquier cosa que tengo:

$ ssh [email protected] 
PTY allocation request failed on channel 0 

$ ssh -T [email protected] 
hello key, this is [email protected] running gitolite3 v3.01-10-g699bafa on git 1.7.10 

(por qué cree que me llaman 'clave' es otro problema de configuración que aún no he resuelto).

2

Probé casi todo lo que pude pensar y no pude hacer que funcione ... hasta que noté que GIT tenía muchas direcciones de correo electrónico ... así que regeneré mi par de llaves ssh usando la opción -C :

ssh-keygen -t rsa -C "[email protected]"

bajo y mira, de repente pude clonar gitolite-admin sin ningún problema.

Al parecer, el correo electrónico en user.email de .gitconfig clave debe corresponder al correo electrónico que se utilizó para generar la clave SSH. Honestamente, si solo tiene 1 par de llaves en su carpeta .ssh, ¿por qué es importante que el correo electrónico corresponda? Imho, si pasas una clave y la clave está en las authorized_keys en el servidor, debería funcionar independientemente de la propiedad .gitconfig user.email.