SVN: “Непоследовательное окончание строки разрабатывает” - Регистрация в файле с ^M намеренно

Я думаю, что некоторые методы, одолженные от сжатия данных, могли быть интересными здесь:

Предполагают, что у Вас есть два файла, A и B.

Сжатие каждый файл индивидуально и добавляют сжатые размеры вместе. Затем свяжите эти два файла в единственный, большой файл и сожмите его также.

различие в размерах даст Вам грубую оценку, насколько подобный файлы.

я предлагаю, чтобы Вы попробовали Преобразование Burrow Wheeler (bzip2), чтобы сделать сжатие. Большинство других алгоритмов сжатия только имеет ограниченную историю. Алгоритм BWT otoh может работать над очень большими блоками данных. Алгоритм "видит" оба файла одновременно, и любое подобие приведет к более высокой степени сжатия.

7
задан Chuck Wolber 6 October 2009 в 21:31
поделиться

5 ответов

Вам необходимо ] удалите свойство svn: eol-style из вашего файла. Subversion не заботилась о окончании строк в вашем файле, пока это свойство не было добавлено. Процитируем книгу Subversion :

Это означает, что по умолчанию Subversion не обращает внимания на тип маркеров конца строки (EOL), используемых в ваши файлы.

Далее в книге описывается, как можно заставить Subversion заботиться о концах строк, установив svn: eol-style , что у вас нет ] хочу.

10
ответ дан 6 December 2019 в 23:10
поделиться

Я предполагаю, что он используется как строка или что-то в этом роде. Разве в bash нет возможности кодировать символы?

0
ответ дан 6 December 2019 в 23:10
поделиться

Я думаю, вам нужно использовать свойство svn: eol-style :

svn propset svn:eol-style LF myscript.sh

заставит Subversion всегда обрабатывать файл как имеющий окончание строки в стиле LF.

0
ответ дан 6 December 2019 в 23:10
поделиться

Я думаю, вы можете установить свойство svn: mime-type к чему-то не основанному на тексте (например, application / octet-stream?). Это может заставить Subversion игнорировать окончания строк.

Взгляните на раздел File Content Type svnbook.

0
ответ дан 6 December 2019 в 23:10
поделиться

Другой подход - в первую очередь избавиться от управляющего символа в программе; это может иметь другие преимущества совместимости и поможет избежать проблем с редактированием в будущем.

Вы можете легко сгенерировать \ r в bash с помощью

`printf '%b' '\015'`

Так, например:

$ echo abc`printf %b '\015'`def
def
$ 

Или:

$ c=`printf %b '\015'`
$ set | grep ^c=
c=$'\r'
$ 

( Примечание: Я знаю, что есть более простые способы, чем вызов printf. К сожалению, эти более простые способы различаются в оболочках bash и posix. Решение только для bash довольно приятно: $ '\ r '. Только ясень, еще лучше: c =' \ r . Я не уверен, что ash делает это, потому что это пепел или потому что это posix.)

1
ответ дан 6 December 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: