過去数年にわたって、私はいくつかの異なるバージョン管理システムを使用してきました。私にとって、それらの間の基本的な違いの1つは、ファイルを個別にバージョン化するか(各ファイルには独自のバージョン番号と履歴がある)、リポジトリ全体(「コミット」またはバージョンがリポジトリ全体のスナップショットを表す)である。
一部の「ファイルごと」バージョン管理システム:
- CVS
- ClearCase
- Visual SourceSafe
一部の「全体リポジトリ」バージョン管理システム:
- SVN
- ギット
- マーキュリアル
私の経験では、ファイルごとのバージョン管理システムは問題を引き起こすだけであり、正しく使用するにはより多くの構成とメンテナンスが必要です(たとえば、ClearCaseの「構成仕様」)。同僚が無関係なファイルを変更し、理想的には孤立した開発ラインを壊すという多くの事例がありました。
これらのファイルごとのバージョン管理システムの利点は何ですか?「全体リポジトリ」バージョン管理システムには、ファイルごとのバージョン管理システムにはない問題がありますか?