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) ファイルをインストールする方法

推薦する

関数の分類の詳細な説明とJavascriptでのこのポイントの例

JS で関数を定義する 3 つの方法例を挙げて説明しましょう。 <スクリプト> //メソ...

VSCode 構成 Git メソッドの手順

Git は vscode に統合されており、git コマンドをいくつか記述しなくても、クリックするだ...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...

IIS7 IIS8 リバースプロキシルールの記述、インストール、構成方法

目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...

JavaScript は 3 つの一般的な Web 効果 (オフセット、クライアント、スクロール シリーズ) を実装します。

目次1. 要素オフセットシリーズ2. 要素表示領域クライアントシリーズ3. 要素スクロールシリーズ1...

ウェブページ作成のテスト問題を全て解けますか?

Web ページのデザインに関する質問です。すべてに答えられるでしょうか? 1. 単一選択の質問 (...

Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...

Linux における nohup と & の使い方と違いの詳細な説明

例:例として、Python コード loop_hello.py を使用します。このコードは、ループ回...

Linux で nginx を起動および再起動する方法

Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...

Vue+element+oss はフロントエンドのフラグメントアップロードとブレークポイント再開を実現します

純粋なフロントエンド実装:切片上傳斷點續傳。斷點續傳カットとアップロードに基づいて実装する必要があり...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

VMware Workstation 14 Pro に Win10 システムをインストールする

この記事では、VMware Workstation 14 Proにシステムをインストールする方法を紹...

タグ li はブロックレベル要素ですか?

なぜ高さを設定できるのでしょうか。<h1 /> などの要素とは異なり、「セミインライン」...

Element-ui の組み込み 2 つのリモート検索 (ファジークエリ) の使用方法の説明

問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...

Reactは適応性の高い仮想リストを実装する

目次変換前:変換後: 0x0の基本0x1 「固定高さ」の仮想リストを実装する原理:最適化: 0x2 ...