В настоящее время я ищу решения для той же проблемы, которую вы описываете в своем вопросе. Однако в моей компании для разрешения этих конфликтов слияния используется сам RSA. Таким образом, предлагаемые ниже решения не будут работать в полной мере для вас, если вы используете инструмент слияния или редактор, который не может работать с канонизированными XML-файлами. Мы наблюдаем те же проблемы, поскольку мы используем Gerrit для просмотра кода, и, как вы указали в своем вопросе, исходный код не читается человеком, и поэтому его невозможно просмотреть или прокомментировать в пользовательском интерфейсе Gerrit.
Исходный код, встроенный в XML-документы с расширениями имен файлов .efx и .emx, был изменен или канонизирован таким образом, что такие символы, как перевод строки, кавычки и другие, были заменены соответствующими последовательностями в кодировке HTML. Git и Gerrit ожидают, что каждая строка исходного кода будет завершаться переводом строки, поэтому в результате получаются почти бесконечно длинные строки, состоящие из всех строк исходного кода в так называемом конкатенированном фрагменте, перемежающемся некоторыми последовательностями кодирования HTML.
Кто-то в нашей компании, по крайней мере, добавил в git грубый фильтр различий, чтобы при вызове «git show», «git diff» и других команд для просмотра содержимого файла встроенные строки исходного кода были удобочитаемы для человека. Фильтр представляет собой набор операторов глобального поиска и замены, заменяющих около дюжины последовательностей в кодировке HTML соответствующими символами UTF-8.
Чтобы решить эту проблему, я считаю, что есть две альтернативы;
1) Добавьте в Gerrit какой-то фильтр, который работает почти так же, как фильтр diff для git, упомянутый выше, заменяя последовательности кодирования HTML соответствующими символами UTF-8.
2) Добавьте фильтры smudge и clean в git, чтобы при проверке кода строки исходного кода преобразовывались в UTF-8 внутри комментария HTML, расположенного рядом с закодированной строкой HTML. Тогда в Gerrit можно будет увидеть исходный код в том виде, в каком его задумал автор, что позволит просматривать и комментировать его как обычно. При извлечении фильтр пятен удаляет HTML-комментарий и исходный код внутри него, оставляя .efx и .emx такими же, как когда RSA записывает содержимое на диск. Хотя это изменит содержимое файла и фактически удвоит его размер, так как исходный код будет повторяться, содержимое останется допустимым XML-документом, который не должен влиять на RSA, даже если HTML-комментарий выдержит процесс смазывания.
Недавно я услышал, что последнюю версию RSA, 9.1, я полагаю, можно настроить так, чтобы встроенный исходный код в файлах фрагментов оставался более или менее нетронутым, чтобы его можно было просмотреть и проверить в Gerrit без необходимости обходных путей, таких как перечисленные. выше. Мне еще предстоит подтвердить для себя, действительно ли это работает, как описано.
person
u6zk6
schedule
31.01.2015