0

Rational Software アーキテクトを使用して設計をモデル化しています。また、Github にレポジトリがあり、チーム メンバー間で共同作業を行うことができます。Merge/Conflicts で直面している問題。そのため、あるチーム メンバーがモデルにいくつかの変更を加え、その変更をコミット/プッシュし、他のメンバーがこの変更をプルしようとすると、多くの競合が発生します。

残念ながら、これらの競合は主に、RSA が独自に作成した .emx ファイル内のメタ データの変更に関係しています。これらの競合は解決が非常に難しく、人間が読める行ではありません。

GitHubでRSAを使用しているときに、他の誰かが同様の問題に直面しましたか

4

2 に答える 2

1

あなたの問題は実際にはRSAではなくgitです。より正確には、あなたの git クライアントです。

RSA は、人間が判読できる差分またはマージを実行でき、異なるバージョンのコンテンツのセマンティックを分析します。ただし、そのためには、コンテンツを変更せず、git クライアントによって生成された「diff」行によって汚染されないようにする必要があります。バージョンの元のコンテンツがあることを期待しているだけです。ほとんどのバージョン管理システムは、自分自身で差分を作成できると考えていますが、複雑なコンテンツではセマンティックを理解できません。

CVS を使用する場合、Eclipse クライアントは完全なバージョンを変更せずに、差分を「rsa diff ツール」に委譲するだけで、ここではすべて正常に機能します。

于 2015-05-06T06:09:49.443 に答える
0

私は現在、あなたが質問で説明したのと同じ問題の解決策を探しています. ただし、私の会社では、これらのマージ競合を整理するために RSA 自体が使用されています。したがって、正規化された XML ファイルを操作できないマージ ツールまたはエディターを使用している場合、以下で提案するソリューションは完全には機能しません。Gerrit を使用してコードをレビューしているため、同じ問題が発生します。質問で述べたように、ソース コードは人間が読めるものではないため、Gerrit UI 内でレビューまたはコメントすることはできません。

.efx および .emx ファイル名拡張子を持つ XML ドキュメントに埋め込まれたソース コードは、改行、引用符などの文字が対応する HTML エンコード シーケンスに置き換えられるように、変更または正規化されています。Git と Gerrit は、各ソース コード行が改行で終了することを想定しているため、結果は、HTML エンコーディング シーケンスが散在する、いわゆるフラグメント連結のすべてのソース コード行で構成されるほぼ無限に長い行になります。

私たちの会社の誰かが、少なくとも大雑把な diff フィルターを git に追加して、「git show」、「git diff」、およびその他のコマンドを呼び出してファイルの内容を表示したときに、埋め込まれたソース コード行が人間が読めるようにしています。フィルタは、HTML でエンコードされたシーケンスを対応する UTF-8 文字に置き換えるグローバルな検索および置換ステートメントの集まりです。

これに対処するには、基本的に 2 つの選択肢があると思います。

1) 前述の git の diff フィルターとほとんど同じように機能する何らかのフィルターを Gerrit に追加し、HTML エンコーディング シーケンスを対応する UTF-8 文字に置き換えます。

2) smudge および clean フィルターを git に追加して、コードをチェックインするときに、HTML エンコードされた行に隣接して配置された HTML コメント内でソース コード行が UTF-8 に変換されるようにします。Gerrit では、作成者が意図したとおりにソース コードを表示できるため、通常どおりレビューやコメントを行うことができます。チェックアウト時に、smudge フィルターは HTML コメントとその中のソース コードを削除し、.efx と .emx は、RSA がコンテンツをディスクに書き込んだときとまったく同じように見えます。ソース コードが繰り返されるため、これによりファイルの内容が変更され、実質的にサイズが 2 倍になりますが、たとえ HTML コメントがスマッジ プロセスを生き延びたとしても、内容は RSA に影響を与えない有効な XML ドキュメントのままです。

最近、RSA の最新バージョンである 9.1 は、フラグメント ファイルに埋め込まれたソース コードを多かれ少なかれそのまま残すように構成できると聞いたので、リストされているような回避策を必要とせずに Gerrit でレビューおよび検査できます。その上。これが実際に説明どおりに機能するかどうかは、まだ確認していません。

于 2015-01-31T12:01:07.997 に答える