Rational Software Architect и GitHub

Мы используем архитектор Rational Software для моделирования наших проектов. И у нас есть наш репозиторий в Github для совместной работы членов команды. Проблема, с которой мы сталкиваемся при слиянии/конфликтах. Поэтому, если один член команды вносит некоторые изменения в модель и фиксирует/отправляет свои изменения, а другой пытается получить это изменение, возникает множество конфликтов.

К сожалению, эти конфликты в основном связаны с изменениями метаданных в файлах .emx, которые RSA делает сама. Эти конфликты очень трудно разрешить, и это не читаемые человеком строки.

Кто-нибудь еще сталкивался с подобными проблемами при использовании RSA с GitHub?


person user667022    schedule 12.08.2014    source источник
comment
git предназначен только для исходного кода. если вы делаете видеоигры, радиорекламу или что-то вроде R.S., просто используйте svn. например, этот вопрос возникает тысячу раз с Unity3D. просто нецелесообразно использовать git для игровых проектов Unity. (проекты Unity — это сотни гигабайт видео, анимации, моделей и т. д. и несколько сотен байт текстовых файлов исходного кода. git — для текстовых файлов исходного кода. все в игровом бизнесе (например) просто используют svn.)   -  person Fattie    schedule 26.06.2016
comment
Как вы интегрировали RSA(9.1) с GIT? @user667022   -  person User    schedule 18.12.2018


Ответы (2)


Ваша проблема на самом деле не RSA, а git. А точнее ваш клиент git.

RSA может выполнять сравнение или слияние, которые удобочитаемы для человека, он анализирует семантику содержимого различных версий. Но для этого ему нужен неизменный контент, не загрязненный строками «diff», созданными вашим git-клиентом. Он просто ожидает иметь исходное содержание версии. Большинство систем контроля версий думают, что они могут сами создавать различия, но со сложным контентом они не могут понять семантику.

Если вы возьмете CVS, клиент eclipse просто отдаст полную версию без изменений и делегирует diff "инструменту rsa diff", и здесь все работает нормально.

person Erik Gollot    schedule 06.05.2015
comment
Я нашел поток на LinkedIn, в котором говорится, что вы должны объявить свои .emx и .efx как двоичные файлы. - person Erik Gollot; 08.05.2015

В настоящее время я ищу решения для той же проблемы, которую вы описываете в своем вопросе. Однако в моей компании для разрешения этих конфликтов слияния используется сам 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
comment
Я могу подтвердить, что в RSA 9.1 большая часть встроенного исходного кода осталась нетронутой, за некоторыми незначительными исключениями, такими как меньше, чем '‹', и несколькими другими символами, которые, если они не закодированы в HTML, препятствуют разбору XML-документа. Важно отметить, что переводы строки являются правильными переводами строки 0xA. В целом, я и большинство моих коллег считают, что RSA — отстой, и я не могу дождаться того дня, когда он будет отправлен на свалку, которой он принадлежит. - person u6zk6; 03.04.2015
comment
слишком сложно. просто используйте свн. git предназначен для текстовых файлов с исходным кодом. - person Fattie; 26.06.2016