'git rev-parse –is-inside-work-tree' no reconoce el tree de trabajo ni los subdirectorys

Después de actualizar a la versión más reciente de Windows Git (2.5.0 desde 1.6.2), me parece que no puedo volver a establecer la base de una twig:

C:\core\guidewire\Dev\2.4>git checkout fhcf-assumptiondate && git rebase master Previous HEAD position was d032e17... Merge branch 'de8041' Switched to branch 'fhcf-assumptiondate' First, rewinding head to replay your work on top of it... fatal: C:\Program Files\Git\mingw64/libexec/git-core\git-am cannot be used without a working tree. 

Los comentarios sobre esta pregunta insinúan un conflicto de installation de Git, pero la versión anterior ya se ha eliminado por completo, incluida una DLL persistente y la comprobación de vars de entornos obsoletos.

Mirando dentro de los scripts de git, encuentro que el post de error proviene de una testing en git-sh-setup que usa git rev-parse --is-inside-work-tree . Consultar rev-parse muestra directamente que parece no entender que realmente estoy dentro de la copy de trabajo:

 C:\core\guidewire\Dev\2.4>dir .git Volume in drive C is System (Local) Volume Serial Number is D4EC-4ED4 Directory of C:\core\guidewire\Dev\2.4 08/04/2015 21:16 27 .git 1 File(s) 27 bytes 0 Dir(s) 155,451,965,440 bytes free C:\core\guidewire\Dev\2.4>git rev-parse --is-inside-work-tree false 

… Excepto que algunos commands son capaces de decir la diferencia correctamente:

 C:\core\guidewire\Dev\2.4>git status HEAD detached from refs/heads/fhcf-assumptiondate nothing to commit, working directory clean C:\core\guidewire\Dev\2.4>cd .. C:\core\guidewire\Dev>git status fatal: Not a git repository (or any of the parent directories): .git 

¿Qué está haciendo confundir a Git sobre si estoy en el directory correcto o no?

Posibles puntos de interés:

  • Repo fue creado por la installation anterior.
  • 1.6.2 era una compilation de msys de Git. 2.5.0 es MinGW.
  • El repository fue clonado con --separate-git-dir .
  • checkout , status , add , commit y posiblemente otros hayan funcionado sin problemas desde la actualización.
  • Un clon del repository roto exhibe un comportamiento correcto; 'in' o 'out' del tree de trabajo se detectan correctamente.

Para continuar usando un repository existente (1.6.x-created) después de actualizar a Windows Git 2.5, actualice el gitconfig del repository:

 [core] worktree = c:/core/guidewire/Dev/2.4 

a

 [core] worktree = C:/core/guidewire/Dev/2.4 

La nueva installation de Git obtiene routes de forma diferente a la anterior, o ya no es sensible a las mayúsculas y minúsculas. Por lo tanto, la location del tree de trabajo repo existente se vuelve incorrecta, ya que ninguna carpeta en c:\core\guidewire\Dev\2.4 tendrá un prefijo de C:\core\guidewire\Dev\2.4 . La fuente de Git para la versión actual no muestra signos de insensibilidad de mayúsculas y minúsculas, por lo que el fork de msys puede haber modificado la function de comprobación de ruta o haber destruido casos de todas las routes antes de la comparación.

    Intereting Posts