Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

マージ_(バージョン管理システム)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > マージ_(バージョン管理システム)の意味・解説 

マージ (バージョン管理システム)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/20 14:02 UTC 版)

ナビゲーションに移動 検索に移動

バージョン管理システムにおけるマージとは、バージョン管理されているファイル群に対して行われた変更を統合する操作のことである。マージが必要とされる典型的なケースとしては、ひとつのファイルが、異なるコンピュータ上で、異なる利用者によって同時に変更された場合がある。2つのブランチをマージすると、双方のチェンジセットを取り込んだファイル群ができあがる。

ファイルに対する変更の衝突がなければ、マージを自動的に実行することもできる。衝突があった場合は、マージ結果のファイルの作成は人手で行う必要がある。多くのバージョン管理システムにはマージ機能が搭載されている。

マージの種別

自動マージツールによって行われるマージ処理には、大きく分けて2ウェイマージと3ウェイマージがある。2ウェイマージよりも3ウェイマージの方がより強力で信頼性も高い。

2ウェイマージ

2ウェイマージでは、ファイルAとファイルBの間で差分の分析を行う。この手法では、マージの前に2つのファイルの差分を個別に検討し、その上でもっとも妥当な推測に基づく分析を行って、マージのファイルを生成する。その結果、多くの場合2ウェイマージはエラーが発生しやすく、マージを完了に先立って、ユーザによるマージ結果の確認や、場合によってはマージ結果の修正が必要となることもある。

3ウェイマージ

Cが親にあたるファイル、AとBがCから派生したファイルで、Dが新しく出力されるバージョン

3ウェイマージは、ファイル'A'と'B'の差分、およびそれらの親にあたるファイル'C'(多くの場合、ファイル'A'と'B'は共通の親を持つ)との差分の分析結果を元に行われる。バージョン管理システムでは親にあたるファイルが必ず存在し、またどのファイルが親かもはっきりしているため、3ウェイマージの使用に適している。マージ用ツールは各ファイル間の差分およびその中に現れるパターンを調査し、マージを行うためにファイル'A','B','C'の間の関係モデルを生成した上で、新しいリビジョン’D'を作り出す。

3ウェイマージは信頼性が高く、実際のデータを対象にしても上手く動作する。ユーザによる最低限の介入を要する場合もあるが、(マージの複雑さにもよるが)多くの場合はユーザの操作なしにマージが行われるため、処理の自動化を目指す場合には良い選択肢となる。

傾向

3ウェイマージにおける技術の進歩により、ソフトウェア構成管理作業において、ブランチを切った上で同時並行して変更を行うという開発スタイルがソフトウェアの開発環境において次第に一般的になっていった。1990年代前半から中頃は、小規模なソフトウェア開発チームではこのような開発スタイルは避けるべきものとされていた。これは、マージ作業の複雑さ、マージによるコンフリクトの発生、費用効果の高い3ウェイマージツールが手に入りにくかったことなどに起因する。一方、大規模なソフトウェア開発チームではこのような開発スタイルの需要が増加していた。これは、複数の開発者が同時刻に同じファイルを変更するという状況が発生しやすくなっていたことに起因する。この時代においては、マージは実際困難を伴う作業であった。そのため、マージ作業の単純化のために、プログラムの所有権に関する取り決めを行うようなケースもあった。

2000年代の初め頃には3ウェイマージツールが手に入りやすくなった。これにより、開発環境における技術的制約を考慮する必要性が低下し、小規模なソフトウェア開発チームでもバージョン管理システム上で同時並行して変更を行いたいという傾向が強まることになった。しかしながら、マージ処理により問題が発生するケースもあった。この時期には、インテリジェントなマージツールであってもすべてのコンフリクトを自動で解決するのは難しかったため、手作業を排除できず、これがヒューマンエラーの元となっていた。

多くのソフトウェア開発チームにおいて、現在でも3ウェイマージは非常に負荷の高い作業である。これは特に、マージ作業の担当者に、元々のコード・途中のコミット内容・期待される修正結果といった点に対する深い理解が要求されるためである。

近年の動向

近年では、以下に挙げるような新しいマージアルゴリズムが開発され、使用頻度が高まっている。

  • Darcsのパッチ順序入れ替え機能
  • Codevilleのヒストリを利用した2ウェイマージ

スタンドアロンなマージツール

  • Apple FileMerge NeXTのMerge由来のMac OS X用開発ツール。
  • Araxis Merge 2ウェイおよび3ウェイのファイル比較、マージ、フォルダ同期が行える。WindowsおよびMac OS Xで動作する。日本語対応[※ 1]
  • Beyond Compare Professional フォルダとファイルの比較・同期と、3ウェイマージが行える。Mac OS X, Windows, Linuxで動作する[※ 2]
  • Compare++ 高機能なソースコード用diffユーティリティで、 C/C++, Java, C#, Javascript, CSSなどのソースコードに対して構造化された比較とマージが行える[※ 3]
  • DeltaWalker Oro ファイル及びフォルダの比較、マージ、同期が2ウェイト3ウェイの両方で実行出来る。Mac OS X, Windows, Linuxで動作する[※ 4]
  • DiffMerge - SourceGear
  • ECMerge テキスト、画像、ディレクトリに対する2ウェイおよび3ウェイのdiffとマージが行える[※ 5]
  • ExamDiff Pro ディレクトリ、バイナリファイル、テキストファイルの比較が行える[※ 6]
  • Guiffy SureMerge ファイル比較、フォルダ比較およびマージが行える。Mac OS X, Windows, Linuxで動作する[※ 7]
  • KDiff3 3ウェイマージツール[※ 8]
  • MergePlant 3ウェイマージツール[※ 9]
  • SimMerge Simulinkモデル用の3ウェイマージツール[※ 10]
  • SourceGear DiffMerge ファイルとフォルダの比較およびマージ用ツール。3ウェイマージも行える。Mac OS X, Windows, Linuxで動作する[※ 11]
  • TortoiseMerge
  • UltraEdit UltraCompare [※ 12]
  • WinMerge フリーでオープンソースな、グラフィカルなWindows用diffおよびマージツール。
  • diff3 各種Unixライクなシステムで使用できる3ウェイマージツール。
  • medini unite MatlabのSimulinkとStateflowモデル用の3ウェイdiffとマージ用ツール[※ 13]
  • meld
  • tkmerge
  • xxdiff グラフィカルなファイルとディレクトリの比較およびマージツール[※ 14]
  • ファイル比較ツールの一覧英語版

注釈

関連項目

  • ファイル比較ツールの比較

外部リンク


「マージ (バージョン管理システム)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「マージ_(バージョン管理システム)」の関連用語

マージ_(バージョン管理システム)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



マージ_(バージョン管理システム)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのマージ (バージョン管理システム) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS