2009-09-30 16 views
21

Alguien ya ha preguntado cómo puedes conseguir que git siga los enlaces simbólicos. Hubo una respuesta para un directorio enlazado , pero no para un archivo de enlace simbólico. También fue hace más de un año.Obteniendo git para seguir los enlaces simbólicos (nuevamente)

Pregunta: ¿cómo haces para que git siga un enlace simbólico y añada el archivo al que se refiere?

Aquí está la vieja pregunta: How can I get git to follow symlinks?. También hay una pregunta sobre qué git normalmente hace How does git handle symbolic links?. Estoy buscando una forma de cambiar este comportamiento.

Por si te importa: estoy ejecutando git 1.5.4.3 en unix y git versión 1.6.0 en mac.

Respuesta

22

Estoy bastante seguro de que no hay manera.

Además, parece una especie de comportamiento inseguro e indefinido: ¿qué debería hacer cuando se mueve entre las versiones del archivo y necesita escribir en él? En particular, si revisa una revisión antes de agregarla, ¿realmente desea que elimine el contenido de un archivo fuera del repositorio? ¿Qué sucede si vuelves a presentar y recrear el archivo, o si el enlace simbólico en sí mismo se modifica? ¿Debería seguir también el mismo enlace simbólico?

Las cosas en esta línea fueron said on the git mailing list a finales del año pasado en respuesta a esencialmente la misma pregunta.

+0

estos son algunos puntos excelentes, gracias. – Peter

+1

Sí, por desgracia. Sé que sería realmente bueno seguir los enlaces en algunos casos. Hubo un enfoque sugerido en una de las respuestas allí: crear los enlaces simbólicos externos al repositorio, y posiblemente todavía incluir enlaces simbólicos desde el repositorio. ¡Espero que encuentres la forma de hacer lo que necesites! – Cascabel

6

cómo sobre el uso de enlaces duros, a continuación, Git tiene ni idea de que es un archivo vinculado (¿verdad?)

11

Puede utilizar los enlaces duros en lugar de enlaces simbólicos (symlinks alias). Git luego verá el contenido del archivo vinculado. La desventaja es que cuando alguien se retira, el archivo se crea como un archivo normal en el directorio desprotegido, porque Git no lo entiende como un enlace.

2

El problema con el uso de enlaces duros es que si algo que escribe en la otra ubicación reemplaza el archivo, en lugar de simplemente escribirle cambios, el archivo de destino tiene un nuevo inodo en el sistema de archivos y el enlace fijo ya no apunta a él, por lo que los archivos no están sincronizados.

Cuestiones relacionadas