как мне сказать subversion обрабатывать файл как двоичный файл?

<p>как мне сказать subversion (svn) обрабатывать файл как двоичный файл?</p>

<p>можно вручную идентифицировать файл, расположенный в репозитории, как <em> двоичный файл </em>, используя:</p><pre><code>svn propset svn:mime-type application/octet-stream <filename> </code></pre><p>как правило, в этом нет необходимости, поскольку subversion будет пытаться определить, является ли файл двоичным при первом добавлении файла. если subversion неправильно помечает определенный тип как "текстовый", когда его следует рассматривать как двоичный файл, можно настроить параметр subversion <a href="http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.auto">функция auto-props</a> для автоматической пометки этого файла нетекстовым mime-типом. независимо от свойств, настроенных для файла, subversion по-прежнему сохраняет файл в двоичном формате в репозитории.</p><p>если subversion идентифицирует mime-тип как "текстовый" тип, он включает определенные функции, которые недоступны в двоичных файлах, такие как <em> svn diff </em> и <em> свн виноват </em>. это также позволяет выполнять автоматическое преобразование конца строки, которое настраивается для каждого клиента.</p><p>для получения дополнительной информации см. <a href="http://subversion.apache.org/faq.html#binary-files">как subversion обрабатывает двоичные файлы?</a> </p>

<p>со страницы 367 <a href="http://svnbook.red-bean.com/en/1.5/svn-book.pdf">subversion book</a> </p><blockquote> <p>в самом общем смысле subversion обрабатывает двоичные файлы более изящно, чем cvs. поскольку cvs использует rcs, он может хранить только последовательные полные копии изменяющегося двоичного файла. subversion, тем не менее, выражает различия между файлами с использованием алгоритма двоичного различия, независимо от того, содержат ли они текстовые или двоичные данные. это означает, что все файлы хранятся по-разному (сжато) в хранилище.</p> <p>пользователи cvs должны помечать двоичные файлы флагами -kb, чтобы предотвратить искажение данных (из-за расширения ключевых слов и перевода строк). они иногда забывают сделать это.</p> <p>subversion выбирает более параноидальный маршрут. во-первых, он никогда не выполняет какой-либо перевод ключевого слова или перевода строки, если вы явно не попросите его сделать это (см. раздел "замена ключевых слов" и раздел "последовательности символов конца строки" для получения более подробной информации). по умолчанию subversion обрабатывает все данные файла как буквенные байтовые строки, а файлы всегда хранятся в хранилище в непереведенном состоянии.</p> <p>во-вторых, subversion поддерживает внутреннее представление о том, является ли файл "текстовыми" или "двоичными" данными, но это понятие существует только в рабочей копии. во время обновления svn subversion будет выполнять контекстное слияние локально измененных текстовых файлов, но не будет пытаться сделать это для двоичных файлов.</p> <p>чтобы определить, возможно ли контекстное слияние, subversion проверяет свойство svn: mime-type. если файл не имеет свойства svn: mime-type или имеет текстовый тип mime (например, text/*), subversion предполагает, что это текст. в противном случае subversion предполагает, что файл является двоичным. subversion также помогает пользователям, выполняя алгоритм двоичного обнаружения в командах svn import и svn add. эти команды сделают правильное предположение, а затем (возможно) установят двоичное свойство svn: mime-type для добавляемого файла. (если subversion угадает неправильно, пользователь всегда может удалить или отредактировать свойство вручную.)</p> </blockquote><p>ручное редактирование будет сделано</p><pre><code>svn propset svn:mime-type some/type filename.extension </code></pre>

<p>по сути, вы должны установить тип mime для октет-потока:</p><pre><code>svn propset svn:mime-type application/octet-stream <filename> </code></pre>

<p>если 'svn add' угадывает неправильный тип и выдает ошибку вроде следующего:</p><pre><code>svn: e200009: file 'qt/examples/dialogs/configdialog/images/config.png' has inconsistent newlines svn: e135000: inconsistent line ending style </code></pre><p>затем обходной путь - добавить файл без свойств, а затем установить свойства на втором шаге:</p><pre><code>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 </code></pre>

<p>например:</p><pre><code>svn propset svn:mime-type image/png foo.png </code></pre>

<p>хотя subversion пытается <a href="http://subversion.apache.org/faq.html#binary-files">автоматически определить</a> является ли файл двоичным или нет, вы можете переопределить mime-тип, используя <a href="http://svnbook.red-bean.com/en/1.0/re23.html">svn propset</a> . например, <code>svn propset svn:mime-type application/octet-stream example.txt</code>. это заставит ваш файл действовать как набор байтов, а не как текстовый файл. см. также руководство svn по <a href="http://svnbook.red-bean.com/nightly/en/svn.advanced.props.file-portability.html#svn.advanced.props.special.mime-type">переносимость файлов</a> .</p>

<p>если вы используете tortoise svn в windows, щелкните правой кнопкой мыши на файле и перейдите в свойства. нажмите на новый и добавьте новое свойство типа svn: mime-type. для поставленного значения: application/octet-stream</p>

<p>согласно <a href="http://subversion.apache.org/faq.html#binary-files">faq по subversion</a> , вы можете использовать svn propset для изменения <strong> свойства svn: mime-type </strong> на <strong> приложения/октет-поток </strong></p>

<p>svn ищет свойство mime-типа, предполагая, что это текст, если он не существует. вы можете подробно установить это свойство, см. <a href="http://svnbook.red-bean.com/en/1.5/svn.forcvs.binary-and-trans.html">http://svnbook.red-bean.com/en/1.5/svn.forcvs.binary-and-trans.html</a> </p>

<p>это обычно делает это по умолчанию для вас, но если это не так, вам нужно посмотреть свойства файла и propset.</p>