La extensión por sí sola no es suficiente para Github para ver si es un archivo de texto. Así que tiene que mirar su contenido. Y como se menciona en ¿Por qué Git tratar este archivo de texto como un archivo binario, su contenido puede no incluir suficiente carácter ascii para adivinar que es un archivo de texto. Puede utilizar un archivo. gitattributes para especificar explícitamente que un. sql debe ser un texto, no un binario. Si estos archivos son generados por Microsoft SQL Management Studio (o lo que sea llamado en la versión de las herramientas de administración de MS SQL Servers que está usando), los archivos que guarda se codifican en UCS-2 (o UTF-16) Byte codificación, que de hecho no es texto en los ojos de Git ¿Por qué es Git marcando mi archivo como binario La respuesta es porque su ver un NUL (0) byte en algún lugar dentro de los primeros 8000 caracteres del archivo. Normalmente, esto sucede porque el archivo se está guardando como algo distinto de UTF-8. Por lo tanto, es probable que se guarda como UCS-2, UCS-4, UTF-16 o UTF-32. Todos los que tienen caracteres NUL incrustados al utilizar caracteres ASCII Puede cambiar la codificación de un archivo guardado en SSMS a UTF-8 seleccionando la codificación UTF-8 con la firma del elemento de menú Opciones avanzadas de guardado en el menú Archivo. Para aquellos que están luchando con este problema en SSMS para 2008 R2 (sí, todavía), puede establecer la codificación predeterminada de la siguiente manera: Ubique el directorio C: Archivos de programa (x86) Microsoft SQL Server100ToolsBinnVSShellCommon7IDESqlWorkbenchProjectItemsSql Las ubicaciones pueden variar. Este es el directorio utilizado por la instalación predeterminada en Windows 7 de 64 bits. En esta ubicación, agregue (o modifique) el archivo SQL de SQLFile. sql vacío. Se utiliza como una plantilla para los nuevos archivos. SQL. Guárdelo usando la codificación que necesita (en mi caso, Windows-1252 con terminaciones de línea de Windows). La flecha a la derecha del botón Guardar le ofrece una selección de codificaciones. Es necesario coordinar las codificaciones con su equipo de desarrollo para evitar git y problemas SSMS. Esta es una solución rápida que funcionó para mí, utilizando SSMS 2012. En opciones de herramientas configuración de entorno internacional, si cambia el idioma de inglés a igual que Microsoft Windows (puede pedirle que reinicie SSMS para que los cambios surtan efecto) No usará UTF-16 como la codificación por defecto para los nuevos archivos más - todos los nuevos archivos que creo tienen Codepage 1252 (file advanced save options) ahora, que es un esquema de codificación de 8 bits y parece no tener problemas con Git Diff A las 14:08. Archivos binarios y forzando las comparaciones de texto Si diff piensa que cualquiera de los dos archivos que compara es binario (un archivo que no es de texto), normalmente trata ese par de archivos como si se hubiera seleccionado el formato de salida de resumen Brief), e informa sólo que los archivos binarios son diferentes. Esto se debe a que las comparaciones línea a línea no suelen ser significativas para los archivos binarios. Diff determina si un archivo es texto o binario al comprobar los primeros bytes en el archivo el número exacto de bytes depende del sistema, pero normalmente es varios miles. Si cada byte en esa parte del archivo no es nulo, diff considera que el archivo es texto, de lo contrario considera que el archivo es binario. A veces es posible que desee forzar diff a considerar que los archivos sean texto. Por ejemplo, puede que esté comparando archivos de texto que contengan caracteres nulos diff decidiría erróneamente que esos son archivos que no son de texto. O puede estar comparando documentos que están en un formato utilizado por un sistema de procesamiento de textos que utiliza caracteres nulos para indicar un formato especial. Puede forzar diff a considerar todos los archivos como archivos de texto y compararlos línea por línea, utilizando la opción - a o --text. Si los archivos que comparas utilizando esta opción no contienen texto, probablemente contendrán pocos caracteres de nueva línea y la salida diff consistirá en trozos que muestren diferencias entre largas líneas de cualquier carácter que contengan los archivos. También puede forzar diff a considerar que todos los archivos son archivos binarios, e informar solo si difieren (pero no cómo). Utilice la opción - q o --brief para esto. Se considera que los archivos binarios diferentes causan problemas porque la salida de dif resultante no captura todas las diferencias. Este problema hace que dif salga con el estado 2. Sin embargo, este problema no puede ocurrir con la opción --a o --text, o con la opción - q o --brief, ya que estas opciones hacen que diff trate archivos binarios como texto Archivos. En sistemas operativos que distinguen entre texto y archivos binarios, diff normalmente lee y escribe todos los datos como texto. Utilice la opción --binary para forzar a diff a leer y escribir datos binarios en su lugar. Esta opción no tiene ningún efecto en un sistema compatible con POSIX como GNU o Unix tradicional. Sin embargo, muchos sistemas operativos de ordenadores personales representan el final de una línea con un retorno de carro seguido de una nueva línea. En estos sistemas, diff normalmente ignora estos retornos de carro en entrada y los genera al final de cada línea de salida, pero con la opción - bin bin diff trata cada retorno de carro como sólo otro carácter de entrada y no genera un retorno de carro en el Final de cada línea de salida. Esto puede ser útil cuando se trata de archivos que no son de texto y que están destinados a intercambiarse con sistemas compatibles con POSIX. La opción - strip-trailing-cr hace que diff trate las líneas de entrada que terminan en el retorno de carro seguido de newline como si terminaran en línea simple. Esto puede ser útil cuando se compara el texto que es imperfectamente importado de muchos sistemas operativos de computadora personal. Esta opción afecta a cómo se leen las líneas, lo que a su vez afecta cómo se comparan y se emiten. Si desea comparar dos archivos byte por byte, puede utilizar el programa cmp con la opción - l para mostrar los valores de cada byte diferente en los dos archivos. Con GNU cmp. También puede utilizar la opción - b para mostrar la representación ASCII de esos bytes. Consulte Invocación de cmp. para más información. Si diff3 piensa que cualquiera de los archivos que está comparando es binario (un archivo que no es de texto), normalmente reporta un error, porque tales comparaciones usualmente no son útiles. Diff3 utiliza la misma prueba que diff para decidir si un archivo es binario. Como con diff. Si los archivos de entrada contienen unos cuantos bytes sin texto, sino que son como archivos de texto, puede forzar a diff3 a considerar todos los archivos como archivos de texto y compararlos línea por línea utilizando las opciones - a o --text.1.7 Archivos binarios Y forzar las comparaciones de texto Si diff piensa que cualquiera de los dos archivos que compara es binario (un archivo que no es de texto), normalmente trata ese par de archivos como si se hubiera seleccionado el formato de salida de resumen (ver sección 1.6 Resumir qué archivos Differ), e informa sólo que los archivos binarios son diferentes. Esto se debe a que las comparaciones línea a línea no suelen ser significativas para los archivos binarios. Diff determina si un archivo es texto o binario al comprobar los primeros bytes en el archivo el número exacto de bytes depende del sistema, pero normalmente es varios miles. Si cada byte en esa parte del archivo no es nulo, diff considera que el archivo es texto, de lo contrario considera que el archivo es binario. A veces es posible que desee forzar diff a considerar que los archivos sean texto. Por ejemplo, puede que esté comparando archivos de texto que contengan caracteres nulos diff decidiría erróneamente que esos son archivos que no son de texto. O puede estar comparando documentos que están en un formato utilizado por un sistema de procesamiento de textos que utiliza caracteres nulos para indicar un formato especial. Puede forzar diff a considerar todos los archivos como archivos de texto y compararlos línea por línea, utilizando la opción - a o --text. Si los archivos que comparas utilizando esta opción no contienen texto, probablemente contendrán pocos caracteres de nueva línea y la salida diff consistirá en trozos que muestren diferencias entre largas líneas de cualquier carácter que contengan los archivos. También puede forzar diff a considerar que todos los archivos son archivos binarios, e informar solo si difieren (pero no cómo). Utilice la opción - q o --brief para esto. Se considera que los archivos binarios diferentes causan problemas porque la salida de dif resultante no captura todas las diferencias. Este problema hace que dif salga con el estado 2. Sin embargo, este problema no puede ocurrir con la opción --a o --text, o con la opción - q o --brief, ya que estas opciones hacen que diff trate archivos binarios como texto Archivos. En los sistemas operativos que distinguen entre texto y archivos binarios, diff normalmente lee y escribe todos los datos como texto. Utilice la opción --binary para forzar a diff a leer y escribir datos binarios en su lugar. Esta opción no tiene ningún efecto en un sistema compatible con POSIX como GNU o Unix tradicional. Sin embargo, muchos sistemas operativos de ordenadores personales representan el final de una línea con un retorno de carro seguido de una nueva línea. En estos sistemas, diff normalmente ignora estos retornos de carro en entrada y los genera al final de cada línea de salida, pero con la opción - bin bin diff trata cada retorno de carro como sólo otro carácter de entrada y no genera un retorno de carro en el Final de cada línea de salida. Esto puede ser útil cuando se trata de archivos que no son de texto y que están destinados a intercambiarse con sistemas compatibles con POSIX. La opción - strip-trailing-cr hace que diff trate las líneas de entrada que terminan en el retorno de carro seguido de newline como si terminaran en línea simple. Esto puede ser útil cuando se compara el texto que es imperfectamente importado de muchos sistemas operativos de computadora personal. Esta opción afecta a cómo se leen las líneas, lo que a su vez afecta cómo se comparan y se emiten. Si desea comparar dos archivos byte por byte, puede utilizar el programa cmp con la opción - l para mostrar los valores de cada byte diferente en los dos archivos. Con GNU cmp. También puede utilizar la opción - b para mostrar la representación ASCII de esos bytes. Vea la sección 12. Invocando cmp. para más información. Si diff3 piensa que cualquiera de los archivos que está comparando es binario (un archivo que no es de texto), normalmente reporta un error, porque tales comparaciones usualmente no son útiles. Diff3 utiliza la misma prueba que diff para decidir si un archivo es binario. Como con diff. Si los archivos de entrada contienen unos cuantos bytes sin texto pero si son como archivos de texto, puede forzar a diff3 a considerar todos los archivos como archivos de texto y compararlos línea por línea usando las opciones - a o --text.
No comments:
Post a Comment