Tengo un .shscript en el que hago doble clic para que git lo ejecute para Windows.
Ahora necesito (imagemagick) convertde cygwin (que he instalado) y lo llamo con su ruta absoluta /c/cygwin64/bin/convert.exe, pero obtengo:
error fatal: se detectó una falta de coincidencia en la base de cygheap. Este problema probablemente se deba al uso de versiones incompatibles de la DLL de cygwin.
Ajustar la convertllamada real en una llamada de cygwin bash, o incluso en una cmd.exellamada, no ayuda. Esto es un poco extraño porque a veces uso ejecutables de cygwin directamente en .cmdscripts, y eso siempre funcionó.
¿Que puedo hacer? Se preferiría una solución que mantenga mi programa limitado a un archivo.
(Sé que probablemente podría simplemente instalar una imagen nativa de Windows. Pero al día siguiente necesito otra herramienta cygwin en un git-for-Win-Shellscript ... también, me gustaría entender qué está pasando aquí. Y, sí, Probablemente haré obsoleto git para Windows en mi lugar de trabajo , si es posible)

Respuestas:
error fatal: se detectó una falta de coincidencia en la base de cygheap.
Este error se debe a que la ruta de Git para Windows es incompatible con Cywin.
Ambos usan
/biny/usr/binpero estos se asignan a directorios diferentes (porque usan tablas de montaje diferentes).Cywin espera encontrar el dll en
/usr/bin/cygwin1.dll(y no se encuentra en Git para Windows)Cuando ejecuta explícitamente cualquier comando de Cygwin en un
bashshell de Git para Windows, Cygwin no puede encontrar su dll y genera el mensaje de error anterior.Observe a continuación que la asignación de montaje para
/es diferente.Git para Windows:
Cygwin:
No hay solución, aparte de no mezclar y combinar utilidades derivadas de cygwin. Elige uno y quédate con él.
fuente
Tuve el mismo problema en Windows 10. Me preguntaba cómo es posible tener muchas versiones de CygWin, aunque no puedo encontrar ni un solo cygwin.dll. Extensiones Git-> Stash y Git Bash se bloquearon con diferentes mensajes de error. La solución está aquí: vaya a Windows Defender -> Aplicación y control del navegador -> Protección contra exploits. Y apague tres opciones con ASLR. Debe reiniciar su sistema a partir de entonces, ¡pero realmente ayuda!
fuente