SVNとは

藏色散人
藏色散人オリジナル
2018-12-24 11:24:258476ブラウズ

SVNとは

SVN (Subversion) とは何ですか?

2010 年以前は、Apache Subversion (略して SVN) は最も人気のあるバージョン管理システムの 1 つでした。現在、SVN の人気は低下していますが、依然として数百万行が保存されています。小規模なオープンソース コミュニティではありますが、積極的に維持され続けています。

SVN

の誕生 1990 年代後半、コンカレント バージョン システム (CVS) は、オープン ソース プロジェクトと商用プロジェクトの両方でソフトウェア開発に広く使用されました。しかし、CVS は批判を受け始めました。サードパーティツールのサポートは不十分で、http/https/ssh プロトコルはまったくサポートされていません。それはすぐに標準以下になり、より良いシステムが必要になりました。

2000 年に SVN の開発が本格的に始まりました。目標は、CVS と互換性のある後継製品を作成することです。

SVN の開発は 2000 年に始まりましたが、バージョン 1.0 は 2004 年 2 月までリリースされませんでした。 CVS の多くの機能を模倣していますが、CVS にはない新しい機能も導入しています。ユーザーはアトミック コマンドを実行し、バージョン管理されたファイルの名前を変更したり、移動したりできるようになりました。

SVN は、2009 年 11 月に Apache Incubator に受け入れられ、Apache プロジェクトになりました。 SVN が世に紹介されてから、CVS の採用は徐々に消えていきました。

おすすめ関連記事:
1.Git と Svn の違いは何ですか
2.Svn ツールのインストール方法
関連ビデオの推奨事項
:
1.SVN ビデオ チュートリアル (Chuanzhi Podcast)

##Subversion はどのように機能しますか?

SVN はもともとコマンド ライン インターフェイスとして設計されました。これは、ターミナルを開いてテキスト コマンドを入力することを意味します。

Subversion が動作するには、SVN セットアップに 2 つの主要な要素が必要です:

1. すべてのソース ファイルのすべてのバージョンを含むサーバー

2. ローカルの場所ファイルのコピーがコンピュータ上にあります。

コンピュータ上のファイルは、

作業ファイルと呼ばれます。これらは各ユーザーが編集するファイルです。次に、ユーザーは SVN サーバー (リポジトリ とも呼ばれます) に変更をコミットします。

ユーザーが変更をコミットするたびに、SVN は新しいバージョンを作成して変更を管理および記録します。ほとんどのバージョン管理システムと同様、ユーザーは通常、最新バージョンを使用します。ただし、古いバージョンが必要な場合は、以前のバージョンに戻すことができます。

SVN サーバーとは何ですか? (Subversion サーバーとは何ですか?)

SVN サーバーには、すべてのソース ファイルとファイルのすべてのバージョンが含まれています。 SVN の世界では、サーバーはリポジトリと呼ばれます。したがって、SVN サーバーと SVN リポジトリは同じものです。

ファイルのローカル コピー (コンピュータに保存されている) は、

作業コピー と呼ばれます。

SVN は分散型ですか?それとも集中型ですか?

バージョン管理システムは、

分散バージョン管理システム (DVCS) 集中型バージョン管理システム (CVCS) の 2 つのカテゴリに大別できます。

SVN は集中バージョン管理システムです。

集中バージョン管理システムとは、バージョン履歴が中央サーバーに保存されることを意味します。開発者が特定のファイルに変更を加えたい場合は、この中央リポジトリからファイルを自分のコンピュータにプルします。開発者は変更を加えた後、変更されたファイルを中央リポジトリに送り返します。

Helix Core を使用したスケーラブルな集中バージョン管理システム。または、Git ベースの分散ワークフローには Helix4Git を使用します。

SVN が直面する課題

SVN には複雑な分岐モデルがある

SVN に関する最も一般的な不満は、その分岐モデルが複雑であることです。ブランチを使用すると、コードの複数のバージョンを同時に作業できます。 SVN では、ブランチはリポジトリ内のディレクトリとして作成されます。多くの開発者はこのディレクトリ構造を好みません。しかし、課題はそれだけではありません。

SVN バージョン 1.6 では、ツリー競合と呼ばれる概念が導入されました。ツリー競合は、ディレクトリ構造の変更によって引き起こされる競合であり、頻繁に発生します。 SVN ではツリーの競合が発生したときに変更をコミットできないため、SVN で分岐戦略を実装する際の複雑さが増します。

SVN では中央リポジトリに接続する必要があります

変更をコミットするには、SVN では中央リポジトリに接続する必要があります。

中央リポジトリに接続せずに SVN を使用しても意味がありません。たとえば、フライト中など、オフラインでコーディングしている場合、SVN では、接続が復元されるまで中央リポジトリにコミットできません。

SVN では競合を手動で解決する必要があります。

マージは、開発者が SVN に関してよく不満を言うもう 1 つの大きな問題です。履歴を使用して 1 つの変更セットを作成してコミットし、その後別の変更 (つまり線形) を作成してコミットする場合、マージは簡単になります。

2 人以上の開発者が同じコード ベースで作業しており、マージする必要がある場合、事態は複雑になります。この場合、SVN は失敗し、開発者は手動で競合を解決する必要があり、開発者の時間が何時間も無駄になります。

SVN を使用する理由

数年前、Git やその他の商用制御システムは SVN を上回りました。しかし、SVN には依然として 2 つの理由があります: コストと慣性

コスト: SVN はオープンソースです。つまり、「無料」です。

慣性: 大規模なコードベースを構築すると、VCS を切り替えるのが困難になることがあります。 SVN は 2004 年から存在しており、SVN を採用している組織には数百万行のコードがあります。

以上がSVNとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。