Onshape は、ドキュメントバージョンまたはワークスペース (ソース) からの変更を現在アクティブなドキュメントワークスペース (ターゲット) にマージするメカニズムを提供します。
選択したソース (ワークスペースまたはバージョン) を現在アクティブなターゲット (ワークスペース) にマージする場合、(1) ターゲットからのすべての変更をソースに置き換える、(2) ソースからすべての変更をターゲットにマージする、または (3) ターゲットのすべての変更を保持できます。さらに、これと同じ 3 つのマージ方法を使用して、ワークスペース内の個々のタブをマージする方法を指定できます。
タブ内で個々の変更を選択することはできません。各タブのすべての変更を保持、マージ、または置き換える必要があります。
Onshape のブランチフィーチャーにより、他のワークスペースに影響を与えずに、デザインの実験用の新しいワークスペースを作成できます。マージを使えば、あるブランチから別のブランチに変更を簡単にコピーできます。
このドキュメントには 2 つのワークスペースがあります。1 つはメインワークスペースのオリジナルデザインで、もう 1 つは Square Base という名前のワークスペースです。チームは Square Base を進めたいと考えています。メインワークスペースがアクティブな状態で、Square Base ワークスペースを右クリックして、[現在のワークスペースにマージする] を選択します。
[マージ] ダイアログは、変更のあるタブと変更のないタブの 2 つのセクションに分かれています。上部では、変更内容の全体的なマージ方法を選択できます。[保持] と [置き換え] オプションの下に、[基底と比較する] へのリンクがあります。これにより、そのブランチと、そのブランチポイントでのドキュメントの状態が比較されます。
[保持] は対象のワークスペースタブを保持し、現在の状態のままにします。つまり、今回のマージではメインブランチのそのタブは変更されません。
[マージ] は両方のブランチの変更を組み合わせます。このオプションは Part Studio とアセンブリのみで使用でき、両方のブランチに特定のタブの変更が含まれている場合のみ使用できます。図面やその他のタブタイプには使用できません。Part Studio での変更には、フィーチャー、コンフィギュレーション入力、マテリアル、または外観の作成、修正、削除が含まれます。アセンブリでの変更には、コンポーネント、合致コネクタ、またはコンフィギュレーションの修正、追加、削除が含まれます。異なるブランチからの変更には互換性がなく、エラーが発生する可能性があるため、このオプションは注意して使用することが重要です。
[置き換え] は、ターゲットをソースで更新します。ターゲットブランチに変更があった場合、それらは完全に上書きされます。変更された各タブの横では、全体的なマージ方法をそのタブに固有のマージ方法でオーバーライドできます。マージ方法が異なるタブは黄色で表示されます。
[置き換え] の全体的なマージ戦略を選択してください。これにより、元のベースがメインブランチの Square Base に置き換わります。マージラインの表示/非表示を切り替えるには、[マージを表示] または [マージを非表示にする] アイコンをクリックします。
有効にすると、グラフに各マージ操作が視覚的に表示されます。マージラインは各マージをソースからターゲットに接続し、変更がどのように組み合わされてドキュメントの履歴全体に反映されるかを明確に示します。デザインへの変更が想定外のものであったり、望ましくなかったりした場合は、ワークスペースをマージ前の最後のアクションに戻せば、いつでもマージを取り消すことができます。
この例では 2 つのワークスペース間のマージを示しましたが、同じプロセスを使用して別のブランチのバージョンを現在のワークスペースにマージすることもできます。
-
[バージョンと履歴] パネルを開きます。
-
The currently active workspace is highlighted dark blue (this is referred to as the Target; Main in the image below). To merge another workspace or version (the Source; B1 in the image below) into the Target, right-click on the Source and select Merge into current workspace:
Remember to select (highlight) the target, and right-click the source. -
マージダイアログが開き、ソースブランチとターゲットブランチを分岐してから加えた変更が表示されます。
Merging takes the delta from the base to the source and applies it to the target. The base is the common ancestor from which the source and target were branched. In this example, the base and target are both Main, and B1 is the source. -
オプションで、[全体的なマージ戦略] を選択します。
-
<ターゲット> を保持する - ターゲットの変更は保持されます。
-
変更をマージ - これが既定です。ソースとターゲットの両方の変更がマージされます。
変更をマージする場合、マージのベースは、ブランチが分岐したときの変更 (たとえば、ブランチを作成したバージョン) か、存在する場合は、以前に同じソースブランチをこのターゲットにマージした最後のポイント (マージを復元しなかった場合) のいずれかになります。
-
<ソース> に置き換える - ソースの変更はターゲットの変更を置き換えます。
-
-
オプションで、各タブのマージ戦略を選択して、[全体] マージ戦略を上書きします。マージ戦略オプションは、タブが作成または削除される場合や、[両方の変更をマージ] オプションをサポートしていないタブタイプの場合を除き、[全体的なマージ戦略] と同じです (最初のヒントを参照)。このような場合、(1) [<ターゲット> を保持する] か、(2) [<ソース> に置き換える] のみ選択できます。
-
緑色のチェックマークアイコン
が付いた変更は、そのワークスペースのタブに対する編集が、マージ後もターゲットワークスペースに保持されることを示します。 -
赤い x アイコン
の付いた変更は、ワークスペースタブで破棄した編集 (削除したフィーチャーなど) がマージ後もターゲットワークスペースに保持されることを示します。 -
感嘆符アイコン
が付いた変更は、マージ後にタブがターゲットワークスペースに存在しないことを示します。 -
情報アイコン
は、このタブタイプでは、個別のブランチ (図面など) からの変更をマージできないことを示します。ターゲット (<ターゲット> を保持する) またはソース (<ソース> に置き換える) のいずれかを選択する必要があります。別のブランチからの変更をマージできないタブ を参照してください。
-
-
[マージ] をクリックします。バージョンと履歴グラフのマージ線は、ブランチ B1 がメインブランチにマージされたことを示しています。
すべてのマージはバージョンと履歴グラフに明示的に表示され、ドキュメントに変更が加えられると自動的に更新されます。
マージ線の表示と非表示
バージョンと履歴グラフを見やすくするには、必要に応じて [マージの表示/非表示] ボタンや [自動バージョンの表示/非表示] ボタンを切り替えます。
Onshape ブラウザアプリケーション (上図) でマージ線と自動バージョンを表示したバージョンと履歴グラフ。
Onshape ブラウザアプリケーション (上記) で非表示になっているマージを含むバージョンと履歴グラフ。
Onshape ブラウザアプリケーション (上記) で自動バージョンが非表示になっているバージョンと履歴グラフ。
マージ線の例
以下の例は、複数のブランチを含む複雑なバージョンと履歴グラフを示しています。各ブランチはメインワークスペースから作成され、各ブランチで個別の作業が行われました。各ブランチの作業が完了すると、ブランチはメインに統合されました。メインブランチに出入りする線の流れにはマージのワークフローが示され、どの変更がいつマージされたかが簡単にわかります。
Onshape ブラウザアプリケーション (上記) で表示している複数のブランチを含むバージョンと履歴グラフ。
マージするタブを選択すると、図面と PCB Studio を除くすべてのタブタイプで [両方の変更をマージ] オプションが使用できるようになります。図面や PCB Studio で作業する場合、1 つのワークスペース (ブランチ) で作業し、そのブランチから他のブランチにマージすることをお勧めします。複数のブランチで同時に作業すると、あるブランチから別のブランチにマージしたときに変更が失われる可能性があります。
例:
-
メイン (ターゲット) ソースに図面 (図面 1) を作成し、パーツを挿入します。
-
バージョン (V1) を作成してから、このバージョン (B1; ソース) からブランチを作成します。
-
B1 ワークスペースで、[図面 1] タブの同じパーツの片側に寸法を追加します。
-
メインワークスペースで、同じ [図面 1] タブの同じパーツの別の側に寸法を追加します。
-
B1 (ソース) ワークスペースからメイン (ターゲット) ワークスペースに変更をマージします。
-
マージダイアログで、[図面 1] タブの [タブマージ戦略] を選択すると、次のいずれかを選択するように求められます。
-
メインを保持する - メインワークスペースから [図面 1] タブが保持されます。メインワークスペースに追加された寸法は保持され、B1 に追加された寸法は上書きされます。
-
B1 に置き換える - これにより、メインワークスペースの [図面 1] タブが B1 ワークスペースの [図面 1] タブに置き換えられます。メインワークスペースに追加されたディメンションは上書きされ、B1 で追加されたディメンションに置き換えられます。
上記のどちらのシナリオでも、一方の寸法は保持され、もう一方は上書きされます。このような状況を回避するには、[図面 1] タブのすべての作業を 1 つのワークスペース ([メイン] など) のみで行います。次に、B1 をメインにマージするときに [メインを保持する] を選択します。この方法では、[図面 1] タブのすべての変更が保持されます。
ターゲットブランチとソースブランチが同じで、すべてのタブが [保持] マージ戦略を使用している場合、更新は不要です。[マージ] ボタンは使用できなくなります。
Remember that "No changes" refers to the delta from the base(Main) to B4; not between B6 and B4.
- ターゲットブランチをソースブランチに置き換えるには、タブマージ戦略を [置き換え] に変更します。

-
[マージ] をクリックします。
保護されたブランチで作業する場合、マージを行う前に、作業ブランチを保護されたブランチと同じ最新の状態に更新する必要があります。マージダイアログの [マージ] ボタンが無効で、ワークスペース保護が有効になっていることを示す警告が表示される場合は、
- マージダイアログを閉じてドキュメントに戻ります。

- [バージョンと履歴] グラフで作業ブランチを選択します。
- 作業ブランチを選択した状態で、保護されたブランチを右クリックし、コンテキストメニューから [現在のワークスペースにマージ] を選択します。

- マージダイアログで、保護されたブランチを作業ブランチにマージしたことを確認し、[マージ] をクリックします。作業ブランチは、保護されたブランチからの変更で更新されます。

- [バージョンと履歴] グラフで、保護されたブランチを選択します。
- 保護されたブランチを選択した状態で、作業ブランチを右クリックして [現在のワークスペースにマージ] を選択します。

- これで、保護されたブランチに変更をマージできるようになります。


FeatureScript のバージョンが古いブランチはマージできません。1 つまたは複数のブランチで古いバージョンの FeatureScript を使用している場合、マージダイアログにこのバージョンの不一致に関する警告メッセージが表示されます。
-
[FeatureScript の更新] アイコン
をクリックして、ターゲットブランチとソースブランチの両方の FeatureScript バージョンを最新の状態に更新します。
- 開いたウィンドウで [今すぐ更新] をクリックして更新を完了します。
- [マージ] をクリックします。
ドキュメントが使用中の場合、ブランチはマージできません。別のユーザーがドキュメントを開いている場合や、ドキュメントを複数のブラウザウィンドウまたはタブで開いている場合は、ユーザー数と開いているインスタンス数を一覧表示するエラーが表示されます。
- 自分と他のユーザーがドキュメントを閉じたことを確認してください。
- ダイアログが自動的に更新され、[今すぐ更新] をクリックできるようになります。
- Onshape でドキュメントが使用されていないこと (ネットワーク接続の問題など) を確認できない場合は、以下のような警告が表示されます。
![[再試行] ボタンが表示されて検証がタイムアウトしたことを示すマージダイアログ警告](../Resources/Images/history/merge-timeout-01.png)
- ダイアログで [再試行] アイコン
をクリックして、もう一度検証を試みます。
- Onshape でドキュメントが使用されていないこと (ネットワーク接続の問題など) を確認できない場合は、以下のような警告が表示されます。
- [マージ] をクリックします。
引き続き更新中の間は、マージを完了できません。現在の更新が完了したら、後でもう一度お試しください。
-
マージは元に戻すアイコン
を使用しても元に戻せないため、マージを実行するとメッセージが開き、クリックしてマージを元に戻せるリンクが表示されます。このメッセージは、タブやワークスペースを切り替えたり、ワークスペースを比較したりしても表示され続けるため、マージの結果を確認できます。
閉じるアイコンを押してマージを承認し、メッセージを終了します。
ドキュメントをマージした後、そのドキュメントにあなたや別のユーザーが変更を加えて、マージを元に戻すと、その変更は失われます。
-
Merging takes the delta from the base to the source and applies it to the target. The base is the common ancestor from which the source and target were branched. For example, if two branches (B1 and B2) are created from the Main branch, and changes are made independently on B1 and B2, the Merge dialog compares the changes between B1 (target) and Main (base) to the changes between B2 (source) and Main (base):
-
ソースとターゲットの間にマージが必要な変更がない場合、マージダイアログには、(1) [<ターゲット> を保持する] と (2) [<ソース> に置き換える] のみ表示されます。既定の選択は [<ソース> に置き換える] です。
-
マージダイアログの [基底と比較する] リンクをクリックして、ソースとターゲットの両方を比較する新しいブラウザタブを開きます。詳細は、比較を参照してください。
-
現在のワークスペースで何も変更せずに 1 つまたは複数のタブの変更をマージするには、全体的なマージ戦略で [<ターゲット> を保持する] を選択し、仕様に応じて [<ソース> に置き換える] または [両方の変更をマージ] (各タブ) を選択します。
-
マージダイアログのタブは、上部に変更があるタブと、下部に変更がないタブの順に並べられます。各セクションは、タブバーの左から右の位置に従って上から下に並べられ、ターゲットブランチが最初、ソースブランチが 2 番目になります。フォルダは表示されません。
選択したソース (ワークスペースまたはバージョン) を現在アクティブなターゲット (ワークスペース) にマージすると、ソースで行ったすべての変更が、追加フィーチャーやタブなどを含め、ターゲットにマージされます。
-
[バージョンと履歴] アイコン
をタップしてパネルを開きます。
-
バージョンと履歴パネルでターゲットブランチ (マージ先のブランチ) を選択します。
- ターゲットブランチを選択したまま、ソースブランチ (マージするブランチ) の右側にある 3 点メニューをタップし、[現在のワークスペースにマージ] をタップします。
![ターゲットブランチを選択した状態で、ソースブランチを右クリックし、[現在のワークスペースにマージ] を選択します](../Resources/Images/m-Version_Manager/ios-merge1-01.png)
ソースで行ったすべての変更は、現在アクティブなワークスペース (ターゲット) にマージされます。このアクションは [バージョンと履歴] パネルのエントリに記録され、必要に応じて、以前の記録から復元してマージアクションを元に戻すことができます。バージョンの復元の詳細は、ドキュメント管理」を参照してください。
Part Studio、または [アセンブリ] 以外の図面、画像、PDF、その他のタブを含むワークスペースをマージする際に、かつソースブランチとターゲットブランチの両方のタブに変更が加えられた場合は、[ソース] ブランチでの変更によって [ターゲット] ブランチでの変更を上書きできます。たとえば、両方のブランチ (ソースとターゲット) の PDF タブを更新し、マージすると、マージ後にソースブランチの PDF はターゲットブランチになります。
すべてのマージはバージョンと履歴グラフに明示的に表示され、ドキュメントに変更が加えられると自動的に更新されます。
マージ線の表示と非表示
バージョンと履歴グラフを見やすくするには、必要に応じて [マージの表示/非表示] ボタンや [自動バージョンの表示/非表示] ボタンを切り替えます。
Onshape ブラウザアプリケーション (上図) でマージ線と自動バージョンを表示したバージョンと履歴グラフ。
Onshape ブラウザアプリケーション (上記) で非表示になっているマージを含むバージョンと履歴グラフ。
Onshape ブラウザアプリケーション (上記) で自動バージョンが非表示になっているバージョンと履歴グラフ。
マージ線の例
以下の例は、複数のブランチを含む複雑なバージョンと履歴グラフを示しています。各ブランチはメインワークスペースから作成され、各ブランチで個別の作業が行われました。各ブランチの作業が完了すると、ブランチはメインに統合されました。メインブランチに出入りする線の流れにはマージのワークフローが示され、どの変更がいつマージされたかが簡単にわかります。
Onshape ブラウザアプリケーション (上記) で表示している複数のブランチを含むバージョンと履歴グラフ。
図面を含むワークスペースをマージする場合 ([図面] タブのように)、変更のある図面はマージを行う間に優先され、[ソース] および [ターゲット] ブランチの両方で図面が変更された場合は、ソース図面が優先されます。具体的には、以下のようになります。
- ソース内の図面に、ターゲット内の図面にない変更がある場合、ソース内の図面がターゲットにコピーされ、ターゲット内の図面が置き換えられます。ソースにないターゲット内の図面に加えられた変更は、すべて上書きされます。
- ソースワークスペースの図面に (ターゲットの図面と比較して) 変更がない場合、ターゲット内の図面は変更されません。
まずは 1 つのワークスペース (ブランチ) の図面で作業し、そのブランチから別のブランチにマージすることをお勧めします。複数のブランチで同時に図面で作業すると、あるブランチから別のブランチに図面を結合すると、変更が失われることがあります。