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