2008-10-14 20 views
11

Tengo un pequeño proyecto que quiero compartir con algunos otros en una máquina a la que todos tenemos acceso. Creé una copia vacía del repositorio local conError del "archivo de descripción del proyecto" en git?

git clone --bare --no-hardlinks path/to/.git/ repoToShare.git 

Luego moví repoToShare.git al servidor.

puedo comprobar que funciona con lo siguiente:

git clone ssh://[email protected]/opt/gitroot/repoToShare.git/ test 

A continuación, puedo ver todo en el repositorio local y hacer que se comete contra. Cuando trato de volver a enviar los cambios al servidor remoto, aparece el siguiente error.

*** Project description file hasn't been set 
error: hooks/update exited with error code 1 
error: hook declined to update refs/heads/master 

¿Alguna idea?

Respuesta

19

Git instala un grupo de ganchos preconfigurados en el directorio de ganchos, listos para usar. Si permites ejecutarlos (por ejemplo, chmod + x), entonces git intentará ejecutarlos. El error particular aparece porque la actualización predeterminada no se puede ejecutar. Para solucionarlo, elimine el gancho de actualización predeterminado.

¿this link ayuda? A partir del texto:

Un colega mío experimentado un problema similar aquí donde empuje no era de trabajo. No se pudo insertar en un repositorio público remoto local. Era obteniendo un archivo de descripción de proyecto no se ha configurado el error lanzado por .git/hooks/update. Este error no fue sucediendo para el mismo proyecto en un Linux o Windows box, y parecía ser sucediendo solo en Windows Vista. De mi búsqueda de ganchos/actualización no es por ejecutada por defecto, pero en Windows Vista era el permiso de archivos . La eliminación de ganchos/actualización resolvió estos problemas.

+1

El problema exacto es que si el script hooks/update tiene permisos de ejecución, lo intentará y lo ejecutará, lo que significa que sus cosas se romperán. :( –

+1

Git 1.6 debería solucionar este problema haciendo caso omiso de los ganchos preinstalados hasta que los cambie de nombre. Por lo tanto, los usuarios más nuevos de Git en Windows deberían dejar de ver este problema una vez que Git 1.6 se generalice. – tialaramex

+0

¿Se me ocurrió usar 1.6.0.4 en Cygwin? Al eliminar el archivo de actualización lo solucioné por mí – bradtgmurray

16

Eliminar ganchos/actualizar no es lo que quieres hacer.

Simplemente cambie .git/description a lo que desee, por ejemplo "repositorio FOOBAR", o, si es francés, "Le depot de FOOBAR".

+0

Definitivamente tengo algo de contenido en .git/description, aún así sigo el error. –

+0

El contenido debe ser diferente del git agregado por defecto. – takeshin

+2

Voy a poner la descripción en francés aunque no puedo hablar el idioma ... – Rimian

2

Tengo este error, así cuando se empuja desde Mac OS X (versión 1.6.1 de Git, compilado con MacPorts) a un repositorio remoto de Ubuntu (Git versión 1.5.4.3)

he añadido el nombre de repositorio en el archivo .git/description en el repositorio local y remoto y que lo arregló.

0

Tuve el mismo problema que @dragulesq pero con un servidor Red Hat.

Para ser un poco más detallado simplemente coloque lo que desee como una cadena en el archivo .git/description en su local (en mi caso mi Mac OS X); Puse el sitio web y luego en el servidor remoto que aloja el repositorio Git (por así decirlo) edito el archivo .git/description y vuelvo a poner la misma cadena (por ejemplo, sitio web).

1

ganchos chmod -x/actualización

el comando anterior se ejecuta desde el directorio .git sólo eliminará los permisos de ejecución del gancho de actualización. No es necesario eliminar el archivo

1

Eliminar archivo o evitar su ejecución parecen soluciones extremas. Si no desea agregar una descripción del proyecto, basta con comentar o eliminar las líneas en hooks/update que están bloqueando las acciones push. En mi archivo, estas líneas son:

# check for no description 
projectdesc=$(sed -e '1q' "$GIT_DIR/description") 
if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb." ]; then 
     echo "*** Project description file hasn't been set" >&2 
     exit 1 
fi 

Cuando las comenté, todo funcionó bien.

Cuestiones relacionadas