Clonación de un repository con enlaces simbólicos de Linux en Windows

Tengo la siguiente configuration:

  • una PC con Windows 8 64x
  • Virtualbox 4.3.12
  • Vagrant 1.6.3
  • Una máquina virtual con Debian 64x

Desde mi máquina virtual, en una carpeta compartida con el host, trato de clonar un repository que contenga enlaces simbólicos de Linux :

vagrant @ vagrant: / vagrant $ git clone https://github.com/francetv/puppet-cron

… Resolución de deltas: 100% (162/162), hecho.

Sin hacer nada más, termino con el siguiente diff: se supone que el file /.travis.yml es un enlace simbólico que apunta en /.travis/travis.yml.

vagrant @ vagrant: / vagrant $ cd puppet-cron

vagrant @ vagrant: / vagrant $ git diff

diff – git a / .travis.yml b / .travis.yml

— a / .travis.yml

+++ b / .travis.yml

@@ -1 +0,0 @@

-.travis / travis.yml

No hay línea nueva al final del file

De hecho, me encuentro con este problema cuando trato de aprovisionar el cuadro Vagrant, lo que hace que el aprovisionamiento falle.

Mi pregunta es: ¿hay alguna manera de evitar esta diferencia después de clonar el repository?

Respuesta corta: No. Virtualbox realmente no sabe qué hacer con los enlaces simbólicos porque no existen en Windows.

Respuesta larga: revisar el repository en su host debería ayudar. git sabe mejor cómo manejar esto. También puede intentar usar Samba o rsync en lugar de las carpetas compartidas que vienen con Virtualbox.

Lo que hice una vez (que en realidad no es una buena solución pero funciona) fue configurar un repository dentro de la vm (no una carpeta compartida) y verifiqué el mismo repository en mi host y lo agregué como una carpeta compartida, que el script ejecutando cada sec que copió cosas de la carpeta compartida en la carpeta de invitados. Como se dijo, funcionó, pero fue "lento" y se rompió en ocasiones.