Можно ли принудительно вывести "svnlook cat" для вывода текста надлежащим образом во время транзакции фиксации? - PullRequest
1 голос
/ 13 октября 2010

При написании ловушки перед фиксацией для subversion я нахожусь в ситуации, когда мой вызов svnlook как

MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`

приводит к возвращаемому значению, которое состоит из одной непрерывной строки вместоправильно отформатированный файл (ы), который изменился при попытке фиксации.Это проблематично, потому что форматирование источника важно для компиляции.Есть идеи, почему все заканчивается одной строкой?Я что-то упустил?

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Форматирование все еще там, но исчезает, когда вы пытаетесь использовать $MESSAGE без кавычек.Оболочка преобразует все последовательности пробелов в один пробел, если только он не защищен кавычками.Для примера:

$ var='foo
  bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
0 голосов
/ 22 октября 2010

Я только что столкнулся с той же проблемой при условии, что окончания строк в файле состоят из одного CR (0x0D).Хорошо работает с LF (0x0A) и CRLF (0x0D0A).Командная оболочка cat имеет ту же проблему.

Редактировать: если используется в Perl-скрипте, результатом будет одна непрерывная строка.При непосредственном использовании в командной строке оболочки, вся строка вертикально смешивается в одну короткую строку.Строго технический, это правильный результат - без перевода строки, только возврат каретки.Но это не имеет большого практического значения.

...