エンベデッドシステムスペシャリスト 2018年 午前2 問11
問題文
分散開発環境において、各開発者のローカル環境に全履歴を含んだ中央リポジトリの完全な複製をもつことによって、中央リポジトリにアクセスできないときでも履歴の調査や変更の記録を可能にする、バージョン管理ツールはどれか。
選択肢
ア:Apache Subversion
イ:CVS
ウ:Git(正解)
エ:RCS
🔒 解説は解答すると表示されます
分散型バージョン管理【午前2解説】
正解の理由
正解はウのGitです。Gitは分散型バージョン管理システムであり、各開発者のローカル環境に、変更履歴を含むリポジトリの複製をもてます。
そのため、中央リポジトリに接続できない場合でも、ローカルで過去の履歴を調べたり、変更を記録したりできます。ネットワークに再接続した後、変更内容を共有先のリポジトリへ送ることもできます。
解法ステップ
- 「各開発者のローカル環境に、全履歴を含む完全な複製をもつ」という特徴に注目します。
- この特徴は、開発者ごとにリポジトリを複製する分散型バージョン管理システムを示しています。
- 選択肢のうち、分散型の代表例であるGitを選びます。
選択肢別の誤答解説
-
ア:Apache Subversion
中央リポジトリを中心に利用する、集中型のバージョン管理システムです。ローカル作業コピーはありますが、通常、全履歴を含むリポジトリの完全な複製ではありません。 -
イ:CVS
中央リポジトリを利用する集中型のバージョン管理システムです。問題文にある「各開発者が全履歴を含む複製をもつ」という特徴とは異なります。 -
ウ:Git
各開発者がリポジトリの複製をもち、ローカルでも履歴の参照や変更の記録ができます。問題文の特徴に合致します。 -
エ:RCS
ファイル単位で変更履歴を管理するツールです。Gitのように、プロジェクト全体のリポジトリを各開発者が複製して管理する分散型システムとは異なります。
よくある誤解
-
ローカルに作業コピーがあれば分散型だと思う
作業コピーがあることと、全履歴を含むリポジトリの複製があることは別です。集中型のツールにも作業コピーはあります。 -
中央リポジトリが存在するなら集中型だと思う
Gitでも共有用のリモートリポジトリを使うことがあります。分類のポイントは、各開発者が履歴を含むリポジトリをローカルにもつかどうかです。 -
分散型なら中央リポジトリを使わないと思う
分散型でも、チームで変更を共有するために中央的な役割のリポジトリを設けることがあります。
補足コラム
Gitでは、変更をローカルリポジトリに記録する操作をコミットといいます。ローカルでコミットできるため、ネットワーク接続がない間も作業を進められます。複数人の変更を共有するときは、リモートリポジトリとの間で変更を送受信します。
FAQ
Q. Gitは中央リポジトリがなくても使えますか?
A. はい。ローカルリポジトリだけでも、履歴の確認や変更の記録ができます。
A. はい。ローカルリポジトリだけでも、履歴の確認や変更の記録ができます。
Q. SubversionとGitの違いを一言でいうと何ですか?
A. Subversionは中央リポジトリを中心に管理する集中型、Gitは開発者ごとに履歴を含むリポジトリの複製をもつ分散型です。
A. Subversionは中央リポジトリを中心に管理する集中型、Gitは開発者ごとに履歴を含むリポジトリの複製をもつ分散型です。
関連キーワード: 分散型バージョン管理、集中型バージョン管理、Git、Subversion、リポジトリ、コミット

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

