¿Es seguro ignorar los errores de clonación de un repository de origen protegido contra escritura?

Tengo un repository de Mercurial en una unidad USB miniatura protegida contra escritura, desde la cual quiero clonar a una estación de trabajo. Pensé que sería una operación de "un solo sentido", pero no es así: después de insert la unidad de disco en la estación de trabajo y probar hg clone E:\my_repo , hg clone E:\my_repo un error que indica que Mercurial está intentando escribir en el repository de origen . (Esto es en Windows XP, con los siguientes detalles de error: "hg.exe – Error de protección de escritura / No se puede escribir en el disco porque está protegido contra escritura. Elimine la protección contra escritura del volumen en la unidad E :.")

Curiosamente, seleccionar "Continuar" entre las opciones de dialog de error, que efectivamente parece significar "ignorar el error y continuar lo que estaba haciendo", parece permitir que el clon se complete con éxito. O al less no veo nada malo con el repository clonado resultante.

Mis preguntas son: (1) ¿por qué Mercurial necesita escribir en la fuente cuando se clona? Y (2) ¿es realmente seguro simplemente continuar e ignorar lo que Mercurial no pueda escribir en la fuente?

Hay cuatro forms de clones Mercurial:

  • hardlink: utilizado para clones en el mismo volumen donde es compatible
  • copy: se usa para clones del sistema de files al sistema de files
  • pull: utilizado para clonar desde máquinas remotas
  • stream: utilizado para la clonación en una LAN de alta velocidad (consulte –uncompressed)

Todos estos methods, excepto pull, intentan bloquear el repository de origen para evitar cualquier compromiso en el medio del clon que pueda dañarlo. Como eso no es un peligro para usted, es seguro ignorar el error (aunque no es un hecho que Mercurial estará contento con el locking).

Alternativamente, puede especificar –pull para hacer un clon donde no se necesita bloquear.