コミット競合の解決 | Mendix

メインコンテンツへスキップ

コミット競合の解決

ほとんどすべてのシナリオでは、複数の開発者が協力してプロジェクトを実施します。複数の人が関与することは有益ですが、プロジェクトの競合バージョンが作成される可能性が高くなります。しかし、これは開発者が何十年も前から知っていることです。

最近のプロジェクトの 1 つでは、チームは 1 日中 1 ページに集中しなければなりませんでした。これにより多くの衝突が発生し、作業がさらに遅れ、グループ内で不満が生じました。

結局、私たちはそれらを避けるために、プロジェクトの 1 つのバージョンで作業を開始しました。場合によっては、これらの問題 (1 つのページのチーム全体のレビューなど) を回避できず、対処せざるを得なくなります。

Mendixさん ローコード プラットフォームにより、バージョンを追跡し、競合を回避することが容易になります。 Mendix Team Server は、Subversion (SVN) を使用してプロジェクトのバージョン管理を行います。Team Server はプロジェクトのソース コードを保存し、チームが変更を追跡する方法を提供します。

変更が行われると、チーム サーバーはプロジェクト全体の最新バージョンをインテリジェントに更新および制御できます。2 人のチーム メンバーが同じページ、マイクロフロー、またはドメイン モデルを変更すると、競合が発生する可能性があります。

この記事では、競合がどのように発生し、どのように解決できるかについて説明します。

紛争はどのようにして起こるのか

チーム メンバーが 2 人、Ryan と Lisa であると仮定します。チーム サーバーにソース コードがあるため、プロジェクトのコピーは 3 つあります。最初は、それらはすべて同等です。

プロジェクトコピー1

Ryan は変更を加え (A が A' になる)、それを Team Server にコミットし、Team Server のバージョンを A' に更新します。

プロジェクトコピー2

その後、リサは別の変更を加えます(A が A'' になります)。

プロジェクトコピー3

Lisa がプロジェクトを Team Server にコミットする前に、プロジェクトを最新バージョンに更新する必要があります。更新が完了すると、Lisa は競合の通知を受け取ります。

競合通知

 

競合が発生したので、その解決方法を検討してみましょう。

コンフリクトの解決

この例では、Lisa は競合を解決するまでプロジェクトをコミットできません。まず、競合を見つける必要があります。これは、通知で指定されているように、変更ドックから行います。

チェンジドック

メッセージをダブルクリックすると、競合しているコンポーネントが表示されます。もう一度ダブルクリックすると、競合に関するより具体的な詳細が表示されます。

チェンジドック2

ここでは、「Theirs」と「Mine」という 100 つの列があります。「Mine」は、あなたが行った変更を指します (この例では、「Mine」は Lisa の変更を指します)。「Theirs」は、他のチーム メンバー (Ryan) が行った変更を指します。競合は非常に些細なものです。マイクロフローの開始イベントの場所が変更されたのです。相対的な中間点は元々 -200;220 (A) でしたが、Ryan がそれを -200;95 (A') に変更し、Lisa が -195;XNUMX (A'') に変更したことがわかります。

この競合を解決するには 2 つの方法があります。いずれの方法でも、変更ドック内の競合を右クリックして次のメニューを表示します。

紛争の解決

ここでは、「自分の変更を使用して競合を解決する」と「他の人の変更を使用して競合を解決する」という 2 つのオプションがあります。「自分の変更を使用して競合を解決する」を選択した場合、このバージョンがコミットされるときに、Ryan が行った変更 (A) は無視されます。「他の人の変更を使用して競合を解決する」を選択した場合、Lisa が行った変更 (A'') は削除され、Lisa のドキュメントは Ryan の A' と同じになります。

これらのアクションは元に戻すことができないため、慎重に選択することが重要です。どれを使用するか不明な場合は、チーム メンバーに問い合わせてください。どのバージョンを保持するのが最適かを判断するのに役立ちます。

どれを使えばよいかわからない場合はどうすればいいですか?

リサがライアンが何をしようとしていたのか知​​らなかったらどうなるでしょうか? あるいは、リサはライアンの変更の一部を必要としているが、自分が行ったことも必要としているのでしょうか? 提供された 2 つの解決策は十分ではないかもしれません。

競合する項目がドメイン モデル以外の場合は、複製できます。ドキュメントを複製できる場合は、複製コピーを作成し、末尾に「_Conflict」を追加します。次に、「競合を解決して他のものを使用」オプションを使用して競合を修正できます。これで、Lisa は A' と A'' のコピーを所有することになります。この 2 つを並べて表示し、Lisa はどの部分を使用するかを決めることができます。

言語を選択してください