SVN (Subversion) は、データを以前のバージョンに復元したり、データ変更の履歴を確認したりできる、無料のオープンソースのバージョン管理システムです。データはソース コードまたは他の種類のファイルです。
SVN が登場する前、CVS はオープンソースの世界におけるバージョン管理ツールの事実上の標準でした。しかし、CVS にはいくつかの固有の欠陥があり、そのため、SVN の創始者である Brian Behlendorf は多大な労力を必要としました。そして CollabNet はバージョン管理ツールを書き直すことにしました。バージョン管理システムは CVS の基本的な考え方を保持していますが、エラーや不合理な機能を修正する必要があります。その結果、CVS の後継として SVN が登場しました。 SVN の設計者は、CVS の多くの明らかな欠点を補う一方で、オープン ソース システムの設計とインターフェイス スタイルを可能な限り CVS に近づけることという 2 つの努力を通じて、CVS ユーザーの支持を得ようと努めています。これらの取り組みの結果、CVS から SVN への移行に大きな変更は必要ないため、SVN を選択する人が増えています。
http://svnbook.red-bean.com
http://www.subversion.org.cn
目次
1.クライアント
の利用
1.1 Linux システム (Ubuntu) での一般的な使用
1.2 Windows システムでの一般的な使用
1.3 Linux で SVN+ssh 認証を使用する (関連情報が見つかりません@_@)
1.4 Windows での SVN+ssh 認証の使用
2. サーバー側の設定
Linux での 2.1 svnserve 構成
Windows での 2.2 svnserve 構成
2.3 Linux での svnserve+ssh 構成
2.4 Windows での svnserve+ssh 設定 (Cygwin が必要、省略)
2.5 Linux での APache ベースの SVN サーバー構成
2.6 Windows での APache ベースの SVN サーバー構成
3. バージョンライブラリを確立します
3.1 Linux でバージョン ライブラリを作成する
3.2 Windows でバージョン ライブラリを作成する
ほとんどの人はクライアントから SVN の使用を開始します。以下では、最初にクライアントの使用方法を紹介します。 SVN サーバーが想定されており、そのフォルダー アドレスが http://domain/svn/trunk/myproject、ユーザー名が test、パスワードが test であるとします。 (サーバーがSVNで構成されている場合は、svn://で始まるURLを使用してアクセスします。サーバーがSVN+SSHで構成されている場合は、svn+sshで始まるURLを使用してアクセスします)
1.クライアントの使用
1.1 通常、Linux (Ubuntu) システムで使用されます
1) まず、ubuntu で、$sudo apt-get install Subversion を使用して svn クライアントをインストールする必要があります (その他の場合は、baigoogledu、Yu Tong を参照してください)。
2) checkout コマンド: 初めて使用するときに checkout コマンドを使用して、サーバー ディレクトリを現在のローカル ディレクトリにコピーします。同時に、バージョン情報を記録するための隠しフォルダーが作成されます。 [作業ディレクトリ]$svn checkout "http://domain/svn/trunk/myproject" --username test
次に、パスワードを入力します
3) svn update コマンド: サーバー上の最新バージョンを取得します
4) svn add コマンド: バージョン管理されていないローカル ファイルをバージョン管理に追加するには:
5) svn commit コマンド: ローカルファイルをサーバーにアップロードします
[作業ディレクトリ]$svn commit (新しいファイルがある場合は、最初に svn add)
1.2 Windows システムでの一般的な使用1) クライアントをインストールします: http://tortoisesvn.net/downloads
2) 新しいフォルダー (作業ディレクトリ) を作成し、右クリックしてチェックアウトを選択し、URL、ユーザー名、パスワードを入力します
3) 作業ディレクトリを右クリックして更新します
4) 作業ディレクトリを右クリックして追加します
5) 作業ディレクトリを右クリックしてコミット
1.3 Linux で SVN+ssh 認証を使用する(関連情報が見つかりません@_@)
1.4 Windows での SVN+ssh 認証の使用(ubuntu での svn サーバーのセットアップと Windows での svn+ssh クライアントの確立を参照してください)
1.4.0 TortoiseSVN、Puttygen、Pageant をインストールします
http://sourceforge.net/projects/tortoisesvn
http://www.chiark.greenend.org.uk/~sgtatham/putty/
1.4.1 秘密鍵形式を変換する
1.4.2 TortoiseSVN と Pageant の間の関連付けを確立し、秘密キーを Pageant に追加します。
1) マウスを右クリックして、TortoiseSVN -> 設定 -> ネットワーク -> SSH クライアントを選択し、次のように入力します:
C:Program FilesTortoiseSVN inTortoisePlink.exe
2) マウスを右クリックし、TortoiseSVN -> RepoBrowser を選択します。 URL を入力します:
svn+ssh://@
3) Pageant を実行し、画面右下のアイコンを右クリックして、[キーの追加] を選択し、秘密キー ファイル key.ppk を追加します。
——ssh パスワードをキャッシュしたくない場合は、手順 8 と 9 は不要で、2 番目の手順のみが保持されます。ただし、チェックアウトまたはチェックインするたびにパスワードを 2 回入力する必要があります。フォルダーに入ると死ぬほどイライラします:)
2. サーバー側の設定
Web サーバーの展開には 3 つのオプションがあり、構成は単純なものから複雑なものまで整理されています
·svnserve
·SSH 経由の svnserve
・Apache+mod_dav_svnモジュール
最も単純なものから始めて、svnserve を紹介しましょう。
[更新] Windows でのサーバー側構成は、VisualSVN サーバーを使用して簡単にインストールできます。
公式ウェブサイト:http://www.visualsvn.com/
参考リンク:VisualSVNシリーズ入門(インストール手順については詳しく紹介されているのでここでは割愛します)
2.1&2.2 svnserveの設定
svnserve は、TCP/IP に基づくカスタム ステートフル プロトコルを通じてクライアントと通信できる軽量サーバーです。クライアントは、svn:// または svn+ssh://svnserve svnserve サーバーで始まる URL を使用してサーバーにアクセスします。
Linux での 2.1 svnserve 構成
2.1.0 同様に、コマンド $sudo apt-get install subversion を使用します
2.1.1 svnserve は独立したデーモンとして機能し、リクエストをリッスンします
$svnserve -d
$ #svnserve は現在実行中で、ポート 3690 でリッスンしています
—— --listen-port=[ポート番号] を使用してポートを指定するか、--listen-host=[ホスト名] を使用してホスト名を指定できます
リポジトリが作成され、/usr/local/repositories/project パスに配置されているとします (リポジトリの確立については後述します)。この時点で、クライアントは svn://[host]/usr を使用できます。 /local/repositories/project にアクセスして続行します。
——-r オプションを使用すると、出力を指定されたパス下のリポジトリのみに制限でき、これによりクライアント アクセスがより簡潔になります:
$svnserve -d -r /usr/local/repositories
その後、クライアントは svn://[host]/project
を使用してアクセスできます。
$svnserve -i
——この時点で、svnserve はカスタム プロトコルを使用して、stdin および stdout 経由で Subversion クライアントと通信しようとします。デフォルトのポートは 3690 です。次の行を /etc/services に追加できます:
svn 3690/tcp #subversion
svn 3690/udp #subversion
——古典的な Unix のような inetd デーモンを使用している場合は、/etc/inetd.conf に次の行を追加できます。その後、顧客がポート 3690 に接続すると、inetd はサービスを提供する svnserve プロセスを生成します
。
svn ストリーム tcp nowait svnowner /usr/bin/svnserve svnserve -i
。