LinuxでSVNサーバーを構築する方法

LinuxでSVNサーバーを構築する方法

1: SVNをインストールする

yum インストール -y サブバージョン

2. 倉庫を作る

1: 倉庫ディレクトリを作成する

mkdir -p /var/project/test

2: 倉庫を作る

svnadmin は /var/project/test を作成します

作成が成功すると、/var/project/test ディレクトリの下に次のディレクトリが作成されます。

drwxr-xr-x. 2 ルート ルート 51 1月30日 13:26 conf
drwxr-sr-x. 6 ルート ルート 4096 1月30日 13:26 db
-r--r--r--. 1 ルート ルート 2 1月30日 13:26 フォーマット
drwxr-xr-x. 2 ルート ルート 4096 1月30日 13:26 フック
drwxr-xr-x. 2 ルート ルート 39 1月 30 13:26 ロック
-rw-r--r--. 1 ルート ルート 229 1月30日 13:26 README.txt

conf ディレクトリは svn 構成ディレクトリであり、次のものが含まれます。

-rw-r--r--. 1 root root 1080 January 30 13:26 authz #権限制御 -rw-r--r--. 1 root root 309 January 30 13:26 passwd #パスワード管理 -rw-r--r--. 1 root root 3090 January 30 13:26 svnserve.conf #SVN サービスプロセス設定

3: SVNの設定

1: 権限設定 (/var/project/test/conf/authz)

#ユーザーのグループ化 (管理者->管理者、開発->開発者、その他->その他)
[グループ]
admin = test1 #管理者ユーザー test1
development = test2,test3 #開発ユーザー test2、test3
other = test4,test5,test6 #他のユーザー test4,,test5,test6
#権限設定[/]
@admin = rw #管理者の読み取りおよび書き込み権限 @development = rw #開発の読み取りおよび書き込み権限 @other = r #その他の読み取り権限 test7 = rw #test7 ユーザーの読み取りおよび書き込み権限

2: パスワード設定 (/var/project/test/conf/passwd)

#パスワード設定、形式はユーザー名=パスワード、パスワードはプレーンテキスト[users]
テスト1 = テスト1
テスト2 = テスト2
テスト3 = テスト3
テスト4 = テスト4
テスト5 = テスト5
テスト6 = テスト6
テスト7 = テスト7

3: SVN サービス プロセス構成 (/var/project/test/conf/svnserve.conf)

[一般的な]
anon-access = none #匿名ユーザーはアクセスできません auth-access = write #認証されたユーザーは読み取りと書き込みが可能です password-db = passwd #ユーザー認証パスワードファイルを指定します authz-db = authz #権限設定ファイルを指定します

4: SVNサービスを開始します(デフォルトのポート番号は3690です)

次のようにコードをコピーします
svnserve -d -r /var/project #-d service background running -r は作業ディレクトリを指定します。/var/project は指定された作業ディレクトリを示します。ウェアハウス名アドレス (/var/project/test) は指定できないことに注意してください。

ポートを指定してSVNを起動する

svnserve -d -r /var/project --listen-port 3691

5. ファイアウォールを閉じるか、指定されたポート番号を開きます

1: ファイアウォールをオフにする

systemctl 停止 ファイアウォール

2: 指定されたファイアウォールを開く

#ポート3690を開くfirewall-cmd --zone=public --add-port=3690/tcp --permanent
#設定を更新するfirewall-cmd --reload

6: クライアントが接続してファイルをアップロードする

Windows で SVN に接続する

1: 新しいディレクトリを作成し、右クリックしてsvn checkoutを選択します


2: バージョン ライブラリに Linux SVN アドレス svn://ip:3690/warehouse 名を入力します (ここでのウェアハウス名は /var/project/test ではなく /test です)


2: ユーザー名とパスワードを入力します


この時点で、このディレクトリに .svn ファイルが生成されていることがわかり、Linux 上の svn サーバーに接続したことが示されます。

3: ファイルをアップロードする

それでは、新しいtest.txtファイルを作成し、いくつかの情報を入力します。

(1)右クリックして追加を選択


次に、test.txt ファイルを選択し、「OK」をクリックします。この時点で、test.txt ファイルにプラス記号が表示されます。


(2)アップロード

右クリックして送信を選択


コメントを記入し、アップロードするファイルを選択して「OK」をクリックします


この時点で、test.txt ファイルのプラス記号が緑色のチェックマークに変わり、アップロードが成功したことが示されます。


しかし、この時点で、アップロードしたファイルが /var/project/test ディレクトリに見つからないことがわかりました。これはなぜでしょうか?アップロードは成功しませんでしたか?
これは、SVN リポジトリにファイルをアップロードした後、アップロードされたファイルはファイルの元の形式で保存されなくなり、SVN によってカスタム形式のリポジトリ データに圧縮されてリポジトリに保存されるためです。SVN サーバー リポジトリには FSFS と BDB の 2 つの形式があります。
現時点ではLinuxでチェックアウトを実装する必要がある

4: チェックアウト

svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test はチェックアウトするウェアハウスのアドレスを示します /data/test はデータをチェックアウトする必要があるディレクトリを示します


これは、以前にクライアントにアップロードしたファイルが /data/test ディレクトリにあるため確認できるのですが、ここで問題が再び発生します。クライアントにファイルをアップロードした後、毎回サーバー上でチェックアウトすることは不可能なので、自動的にチェックアウトするにはどうすればよいでしょうか。

5: 構成を自動的にチェックアウトする

/var/project/test/hooks ディレクトリに post-commit ファイルを作成し、次の内容を post-commit ファイルに追加します。

#!/bin/sh
REPOS="$1" #ウェアハウス REV="$2" #バージョン番号 export.UTF-8 #エンコーディング SVN=/usr/bin/svn #svn アドレス WEB=/data/test #更新するプロジェクト ディレクトリ $SVN update $WEB --username test1 --password test1 #--username test1 はユーザー名の設定を意味します --password test1 はパスワードの設定を意味します

コミット後に実行可能に設定する

chmod +x /var/project/test/hooks/post-commit

自動チェックアウトの設定はこれで完了ですが、最初の1回は手動でチェックアウトする必要があり、その後は行う必要がないことに注意してください。これでLinuxでのsvnサーバーのセットアップが完了しました。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux での SVN バージョン管理の一般的なコマンドの完全なリスト
  • Linux での SVN コマンドライン バッチ操作の詳細な説明
  • Linux SVN サーバーのセットアップ、クライアント操作、バックアップとリカバリ
  • Linux svn の構築と使用方法 (画像とテキスト付き)
  • Linux (centos) で SVN サーバーを構築する方法
  • Linux 上の SVN サーバーから Web ディレクトリにファイルを自動的に更新する方法
  • Linux SVNサーバーはApache httpとsvnserveスタンドアロンサーバーモードの両方をサポートし、同じアクセス権限アカウントを使用します。
  • Linux サーバー上で複数の SVN リポジトリを構成するプロセスの詳細な説明

<<:  Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策

>>:  Linux で複数の mysql5.7.19 (tar.gz) ファイルをインストールする方法

推薦する

CSS3 とテーブルタグを使用して円軌道アニメーションを実装するためのサンプルコード

html: 実際には、テーブルタグに従っていくつかの実線の円 div を正六角形に配置し、div コ...

1つの記事でJSONPの原理と応用を理解する

目次JSONPとはJSONP 原則JSONP実装1. Ajaxでクロスドメインリクエストが行われると...

MySQL 5.7.23 バージョンのインストールチュートリアルと設定方法

MySQL を自分でインストールするのに 3 時間かかりました。チュートリアルはたくさんあるにもかか...

Linux の操作とメンテナンスの基本システムディスク管理チュートリアル

1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...

Vuex全体のケースの詳細な説明

目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...

Linux での MySQL 8.0 インストール チュートリアル

この記事では、LinuxでMySQL 8.0をインストールする方法を紹介します。具体的な内容は次のと...

mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題

cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...

xshellリモート接続の自動切断の問題の解決方法の詳細な説明

xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...

ユーザーはその理由を知る必要がある

証券会社にいた頃、設計業務が忙しくなかったため、商品のマニュアルを書く役割を担ったことがありました。...

HTML テーブル マークアップ チュートリアル (18): テーブル ヘッダー

<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...

Dockerコンテナが起動直後に終了する問題を解決する

最近、Docker がコンテナの起動時に特定のプロセスを直接実行できるようにする方法を調べていたとこ...

mysql 8.0.18.zip のインストールと構成方法のグラフィック チュートリアル (Windows 64 ビット)

以前にインストールされたバージョンのデータベースをアンインストールする方法については、この記事を参照...

CSS 位置固定左と右の二重配置実装コード

CSS 位置position 属性は、要素の配置タイプを指定します。位置プロパティには 5 つの値が...