¿Cómo le digo a Subversion (svn) que trate un archivo como un archivo binario?¿Cómo le digo a Subversion que trate un archivo como un archivo binario?
Respuesta
Es posible identificar manualmente un archivo que se encuentra dentro de un repositorio como binario mediante el uso de:
svn propset svn:mime-type application/octet-stream <filename>
Esto generalmente no es necesario, ya que Subversion intentará determinar si un archivo es binario cuando el archivo primero se agrega. Si Subversion está etiquetando incorrectamente un cierto tipo como "texto" cuando debe tratarse como binario, es posible configurar Subversion auto-props feature para etiquetar automáticamente ese archivo con un tipo MIME que no sea de texto. Independientemente de las propiedades configuradas en el archivo, Subversion aún almacena el archivo en un formato binario dentro del repositorio.
Si Subversion identifica el tipo MIME como un tipo de "texto", que permite a ciertas características que no están disponibles en archivos binarios, como diff SVN SVN y culpan. También permite la conversión automática de final de línea, que se puede configurar cliente por cliente.
Para obtener más información, ver How does Subversion handle binary files?
Por ejemplo:
svn propset svn:mime-type image/png foo.png
Según el Subversion FAQ, puede utilizar propset SVN para cambiar el svn: mime-tipo propiedad a application/octet-stream
SVN busca una propiedad tipo mime, adivinando que es texto si no existe. Puede establecer explícitamente esta propiedad, consulte http://svnbook.red-bean.com/en/1.5/svn.forcvs.binary-and-trans.html
Básicamente, usted tiene que establecer el tipo MIME a octet-stream:
svn propset svn:mime-type application/octet-stream <filename>
Por lo general hace esto por defecto para ti, pero si no es usted necesita buscar propiedades de archivos y propset.
En la página 367 del Subversion book
En el sentido más general, Subversion maneja ficheros binarios más elegantemente que CVS. Como CVS utiliza RCS, solo puede almacenar copias completas sucesivas de un archivo binario cambiante. Subversion, sin embargo, expresa las diferencias entre los archivos que utilizan un algoritmo de diferenciación binaria, independientemente de si contienen datos textuales o binarios. Eso significa que todos los archivos están almacenados diferencialmente (comprimidos) en el repositorio.
Los usuarios de CVS tienen que marcar los archivos binarios con -kb flags para evitar que los datos se confundan (debido a para la expansión de palabras clave y las traducciones de final de línea). A veces se olvidan de hacer esto.
Subversion toma la ruta más paranoica. Primero, nunca realiza ningún tipo de palabra clave o finalización de línea a menos que explícitamente se lo solicite (consulte la sección llamada "Palabra clave Sustitución" y la sección llamada "Secuencias de caracteres de fin de línea" para obtener más información) . De manera predeterminada, Subversion trata todos los datos de archivo como cadenas de bytes literales, y los archivos se almacenan siempre en el repositorio en un estado no traducido.
En segundo lugar, Subversion mantiene una noción interna de si un archivo es de datos "de texto" o "binarios", , pero esta noción solo existe en la copia de trabajo. Durante una actualización de svn, Subversion hará realizar fusiones contextuales en archivos de texto modificados localmente, pero no intentará hacerlo para los archivos binarios .
Para determinar si es posible una fusión contextual, Subversion examina la propiedad svn: mime-type. Si el archivo no tiene propiedad svn: mime-type, o tiene un tipo MIME que es textual (por ejemplo, text/*), Subversion asume que es texto. De lo contrario, Subversion asume que el archivo es binario. Subversion también ayuda a los usuarios ejecutando un algoritmo de detección binaria en los comandos svn import y svn add. Estos comandos harán una buena conjetura y luego (posiblemente) establecerán una propiedad binaria svn: mime-type en el archivo que se está agregando. (Si la suposición de Subversion es incorrecta, el usuario siempre puede eliminar o editar manualmente la propiedad.)
edición manual se haría mediante
svn propset svn:mime-type some/type filename.extension
¿Cómo se hace esto en la importación? Es decir, __antes de__ entra al repositorio? El caso de uso que tengo es un archivo que svn no importa porque cree que es texto mal formado (terminaciones de línea inconsistentes). Pero son ** datos de prueba **, por lo que el archivo está ** destinado ** a tener terminaciones de línea inconsistentes .... –
Si se utiliza Tortoise SVN en Windows, haga clic derecho sobre el archivo y vaya a propiedades. Haga clic en nuevo y agregue una nueva propiedad de tipo svn: mime-type. Para el valor de venta: application/octet-stream
Aunque Subversion trata de automatically detect si un archivo es binario o no, puede anular el tipo mime utilizando svn propset. Por ejemplo, svn propset svn:mime-type application/octet-stream example.txt
. Esto hará que su archivo actúe como una colección de bytes en lugar de un archivo de texto. Vea también, el manual de svn en File Portability.
Solo para actualizar su enlace para el algoritmo de detección automática: http://subversion.apache.org /faq.html#binary-files – oldNoakes
Si 'svn add' supone el tipo incorrecto y le da un error como el siguiente:
svn: E200009: File 'qt/examples/dialogs/configdialog/images/config.png' has inconsistent newlines
svn: E135000: Inconsistent line ending style
entonces la solución es agregar el archivo sin propiedades y luego configure las propiedades en un segundo paso:
svn add --no-auto-props qt/examples/dialogs/configdialog/images/config.png
svn propset svn:mime-type image/png qt/examples/dialogs/configdialog/images/config.png
- 1. ¿Cómo hago que Git trate un archivo como binario?
- 2. ¿Cómo le digo a TortoiseHg que un archivo no es binario?
- 3. Explicidad decirle a SVN que trate un archivo como texto, no binario
- 4. ¿Cómo debo guardar un archivo en OpenOffice para que no sea un archivo binario en Subversion?
- 5. ¿Es posible decirle a Visual Studio que no trate un archivo fuente como un "componente"?
- 6. svn diff: archivo marcado como tipo binario
- 7. ¿Cómo le digo a Rails cómo capitalizar correctamente un acrónimo?
- 8. ¿Cómo le digo a playframework que use mi proxy corporativo?
- 9. ¿Cómo le digo a paperclip que no guarde el archivo original?
- 10. ¿Cómo anexar datos a un archivo binario?
- 11. ¿Cómo fusiono un archivo binario?
- 12. ¿Cómo le digo a ReSharper que un atributo significa que se usa un método?
- 13. Hacer que Eclipse trate el archivo .h como C++?
- 14. Binario "cola" un archivo
- 15. ¿Cómo le digo a Git que ignore un nombre de archivo específico solo en el nivel superior del repositorio?
- 16. ¿Cómo le digo a Git que ignore todo excepto un subdirectorio?
- 17. ¿Cómo le digo a linkify que no subraye enlaces?
- 18. ¿Cómo le digo a Eclipse que valide los archivos HTML como PHP?
- 19. Guardar un marco de datos como un archivo binario
- 20. Generando un archivo binario aleatorio
- 21. ¿Cómo le digo a Qt que siempre muestre un editor en QTableView?
- 22. ¿Cómo le digo a DBD :: mysql dónde está mysql.sock?
- 23. leer un archivo binario (pitón)
- 24. archivo binario a cadena
- 25. ¿Cómo le digo a CPAN.pm que instale todos los módulos en un directorio específico?
- 26. ¿Cómo sabe Perl que un archivo es binario?
- 27. Cómo le digo a Git que tiene movimientos/cambia el nombre incorrectos (falsos positivos)
- 28. Cargar un archivo binario usando JavaScript puro
- 29. ¿Podemos establecer un único archivo como externo en Subversion?
- 30. Lua: escribir valores hexadecimales como un archivo binario
Necesitaba lo contrario; usando 'text/plain' trabajado! – Hashbrown