una tutorial trabajo tortoise subversion subir repositorio proyecto español descargar crear copia con como clonar archivos svn

svn - tutorial - ¿Cómo le digo a Subversion que trate un archivo como un archivo binario?



svn no es una copia de trabajo (10)

¿Cómo le digo a Subversion (svn) que trate un archivo como un archivo binario?


Aunque Subversion intenta detectar automáticamente 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. Ver también, el manual svn sobre portabilidad de archivos .


Básicamente, debes establecer el tipo de mime en octet-stream:

svn propset svn:mime-type application/octet-stream <filename>


Desde la página 367 del libro de Subversion

En el sentido más general, Subversion maneja los archivos binarios más elegantemente que CVS. Debido a que CVS usa RCS, solo puede almacenar copias completas sucesivas de un archivo binario cambiante. Sin embargo, Subversion 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 se almacenan diferencialmente (comprimidos) en el repositorio.

Los usuarios de CVS deben marcar los archivos binarios con -kb flags para evitar que los datos se confundan (debido a 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 traducción de final de línea a menos que explícitamente se lo solicite (consulte la sección llamada "Sustitución de palabras clave" 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 siempre se almacenan 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 realizará fusiones contextuales en archivos de texto modificados localmente, pero no intentará hacerlo para archivos binarios.

Para determinar si una fusión contextual es posible, 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 Subversion adivina incorrectamente, el usuario siempre puede eliminar o editar manualmente la propiedad).

La edición a mano se haría por

svn propset svn:mime-type some/type filename.extension


Es posible identificar manualmente un archivo ubicado dentro de un repositorio como binario usando:

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 se agrega por primera vez. Si Subversion está etiquetando incorrectamente un cierto tipo como "texto" cuando debe tratarse como binario, es posible configurar la función de autopropósitos de Subversion 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", habilita ciertas características que no están disponibles en archivos binarios, como svn diff y svn culpa . 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, consulte ¿Cómo maneja Subversion los archivos binarios?


Por ejemplo:

svn propset svn:mime-type image/png foo.png


Por lo general, lo hace por defecto para usted, pero si no es así, debe buscar propiedades de archivos y propset.



Si ''svn add'' adivina 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

luego, la solución es agregar el archivo sin propiedades y luego establecer 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


Si usa tortby svn en Windows, haga clic derecho en el archivo y vaya a propiedades. Haga clic en nuevo y agregue una nueva propiedad de tipo svn: mime-type. Para el valor puesto: application / octet-stream