Pregunta

Teniendo en cuenta que Git no reconoce enlaces simbólicos que punto fuera del repositorio, ¿hay algún problema con los enlaces duros?

Podría Git romperlas? ¿Me podría apuntar a la información detallada?

¿Fue útil?

Solución

El objeto 'árbol', que representa a los directorios en Git, nombre de archivo y tiendas (subconjunto de) los permisos. No almacena el número de inodo (u otro tipo de identificación de archivos). Por lo tanto enlaces duros no pueden ser representados en git , al menos no sin herramientas de terceros, como o href="https://gist.github.com/andris9/1978266" rel="noreferrer"> git-cache-meta ( y no estoy seguro de si es posible, incluso con esas herramientas).

Git trata de no tocar los archivos que no necesita actualización, pero hay que tener en cuenta que git no trata de preservar los enlaces duros, para que puedan ser rotos por git.


Sobre enlaces simbólicos apuntando fuera repositorio : Git tiene ningún problema con ellos y debe preservar contenidos de los enlaces simbólicos ... pero la utilidad de estos enlaces es dudosa para mí, como si esos enlaces simbólicos se romperían o no depende de la disposición del sistema de ficheros fuera repositorio git, y no bajo el control de git.

Otros consejos

Ok, ahora se trata de una respuesta tardía = D

He encontrado que, usando ganchos, puede capturar el evento git pull (cuando hay algo de tirón ...) escribir el controlador de eventos en Fichero .git/hooks/post-merge.

En primer lugar, usted tiene que chmod +x él.

A continuación, poner las órdenes ln dentro de él para volver a crear enlaces duros en cada tirón. eh ordenada!

Se trabaja, sólo necesitaba que para mi proyecto y ls -i muestra que los archivos se vinculan automáticamente después de pull.


Mi ejemplo de .git/hooks/post-merge:

#!/bin/sh
ln -f $GIT_DIR/../apresentacao/apresentacao.pdf $GIT_DIR/../capa/apresentacao.pdf
ln -f $GIT_DIR/../avaliacoesMono/avaliacao_monografias_2011_Nilo.pdf $GIT_DIR/../capa/avaliacoes.pdf
ln -f $GIT_DIR/../posters/poster_Nilo_sci.pdf $GIT_DIR/../capa/poster.pdf
ln -f $GIT_DIR/../monografia/monografia_Nilo.pdf $GIT_DIR/../capa/monografia_Nilo.pdf

IMPORTANTE:. Como se puede ver, el camino a cualquier archivo en su repositorio debe comenzar con $GIT_DIR, a continuación, añadir la ruta relativa al archivo parcial

También es importante:. -f es necesario, ya que vuelve a crear el archivo de destino

A partir de este tema msysgit

Los puntos de unión no son enlaces simbólicos; Por lo tanto, los enlaces simbólicos son simplemente sin apoyo en msysGit.

Además, enlaces duros nunca fueron rastreados por Git .

La cuestión eran de Windows-orientado (ya que se trata de msysgit) y el debate sobre el potencial apoyo de enlace simbólico.
Pero el comentario sobre las preocupaciones enlace duro Git en general.

Google 'GIT preservar enlaces duros' y muestra que git no sabe cómo preservar la estructura de enlace duro yo sepa, tal vez por diseño.

proyectos Web de la mina utilizan enlaces duros de la siguiente manera:

www/products/index.php
www/products/dell_latitude_id577/index.php #(hard linked to above)
www/products/dell_inspiron_id323/index.php #(hard linked again to above)

me@server:www/products$ ls -l index.php
-rwxr-xr-x 3 me me 1958 Aug 22 22:10 index.php*

Si quisiera hacer cambios a index.php lo cambio en un lugar y los enlaces duros (páginas de detalles del producto) apuntan a los cambios -. Excepto Git no mantiene esta relación durante la clonación y tirando en otros equipos

me@server:www$ git pull

en otra máquina creará un nuevo index.php para cada enlace duro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top