SCMとSVNの違いは何ですか?そして、gitはmercurialとどう違うのですか?
5 に答える
SCMとは、通常、ソフトウェア構成管理を意味します。これには、バージョン管理を含むCMRM(変更管理からリリース管理まで)が含まれます。
SVNはVCS:バージョン管理ツールにすぎません。
つまり、1つははるかに完全であり、開発ライフサイクルをより完全にカバーしますが、一般的です。TeamFundationServerまたはRTC(Rational Team Concert)はどちらもSCMの例です。
SCMはソフトウェア構成管理であり、SVNはSCMのサブセットであるバージョン管理システムツールです。VCSはリビジョン管理およびGitとも呼ばれ、MercurialはVCSツールでもあります(より具体的には分散VCSです。)
SVN、Git、Mercurialなどは、SCMのプロセスの1つであるリビジョン管理のためのツールです。SCMには、ビルド管理、欠陥追跡なども含まれます。
SCMは一般的な用語であり、実際には何の意味もありません。「ソフトウェア構成管理」「ソフトウェア変更管理」「ソースコード管理」という意味だと聞きましたが、おそらく他にもあります。私が知る限り、それは基本的にマーケティングの話です。
後者のフレーズのような意味であると見なす場合、SVN(Subversionの略語)、git、およびMercurialはすべて特定のタイプのSCMシステムです。GitとMercurialはほぼ同等です。わずかな違いがありますが、個人的な好みが実際に重要なことの大部分です。どちらもいわゆる分散型リビジョン管理システムであり、1つの中央の場所に依存する必要がないことを意味します。それらを使用する各人は独立して作業することができ、それらはほぼ独立してすべてを同期します。
Subversionは一元化されています。これは、同じ種類の問題を解決することを目的としていますが、すべてのアクティビティを、全員が使用する1つの場所を通過させることによって解決します。これにより、多くのことを管理しやすくなりますが、かなりの柔軟性が犠牲になります。繰り返しますが、個人的な好みによって、どちらを好むかが決まります。
SVN(Subversion)は、バージョン管理機能を提供するツールです。開発者は、このツールを使用してコードをチェックインしました。これを使用して、ソフトウェア開発プロセス中にファイル/コードに加えられた変更を追跡できます。
ソフトウェア構成管理は、ソフトウェア開発の変更を追跡および制御するために使用される手法です。これには、ソフトウェアの構築、パッケージ化、および展開に必要なすべてのプロセスが含まれています。
私はGitとMercurialの両方を試しました(そして現在はMercurialを使用しています)。私が見たところ、Gitは少し速く、おそらくもっと用途が広いようですが、それは学習曲線のコストがかかります。最初に両方を試したとき、情報を頼りにする同僚が他にいなかったので、Gitの学習曲線はMercurialの学習曲線よりもかなり急でした。また、MercurialはWindows(私のメインの開発プラットフォーム)からかなり使いやすいことがわかりました。
MercurialはGitをサポートしており、その逆もおそらく当てはまります。そのため、必要に応じて、どちらかを試して後で切り替えることができます。