diff tortoisehg binaryfiles

diff - ¿Cómo le digo a TortoiseHg que un archivo no es binario?



binaryfiles (3)

El uso de notepad ++ ayuda a convertir la codificación UCS-2 al UTF-8.

Sin embargo, cuando lo uso, por ejemplo, para convertir un archivo XML (Visual Studio csproj), no olvide cambiar la codificación XML de utf-16 a utf-8, como:

<?xml version="1.0" encoding="utf-8"?>

Alguien ha agregado recientemente un script de PowerShell (.ps1) a nuestro repositorio de Mercurial. El archivo es de texto simple, pero TortoiseHg parece pensar que es binario y muestra un mensaje: "El archivo o las diferencias no se muestran: el archivo es binario".

Cómo decirle a TortoiseHg que los archivos ps1 son de texto y no binarios. Estoy usando la versión TortoiseHg 2.0.3


Lo siento por responder a una publicación que es tan antigua, pero para propósitos históricos, algunos comentarios están en orden.

Primero, el repositorio de código subyacente (mercurial) trata a todos los archivos como binarios en lo que respecta a las revisiones. Todo lo que está perdiendo aquí es la capacidad de ver las diferencias, las diferencias físicas aún se rastrean y la naturaleza de esos cambios no es mayor debido al hecho de que Tortoise no puede mostrarlos. (En contraste, los archivos binarios JPEG tienen grandes diferencias binarias incluso para pequeños cambios de píxeles; mientras que estos archivos tendrán diferencias relativamente pequeñas).

En segundo lugar, a pesar de que Tortoise no puede mostrar las diferencias, kdiff3 puede hacerlo si configura su archivo mercurial.ini adecuadamente. En su directorio de inicio, es probable que tenga un archivo mercurial.ini, aunque solo sea para registrar su nombre de usuario. Si lo expandes para incluir patrones de fusión. Busque aquí los patrones de combinación: http://www.selenic.com/mercurial/hgrc.5.html .

Allí, verá cómo decirle a mercurial que las diferencias en estos archivos deben mostrarse con kdiff3, aunque mercurial crea que son binarios. Tortoise aún no mostrará las diferencias en el banco de trabajo, pero puede hacer clic con el botón derecho en el archivo y mostrar las diferencias a los padres, y verá las diferencias muy bien. No es perfecto, pero es mejor que nada.


Los archivos están codificados en codificación UCS-2 y utilicé notepad ++ para convertirlos a UTF-8.

Ahora que está hecho, mercurial parece reconocer el archivo como texto y realiza una diferencia correctamente.

Es hora de que read esto de nuevo!

Puede que valga la pena ver this , ya que UCS-2 parece estar estrechamente relacionado con UTF-16. De acuerdo con ese enlace, lo supera, pero el esfuerzo para mover Windows a UTF-16 desde UCS-2 ha estado en curso desde antes del 2000.