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

推薦する

MySQLデータを復元する2つの方法

1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...

HTML ベース URL タグ

その機能はグローバル スタイルを設定することです。その後の相対パスはこれに基づきます: <im...

DeepinでPyenvをインストールする手順

序文これまでは、/bin/ ディレクトリのソフトリンクを変更して Python のバージョンを切り替...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

SQLでEXPLAINコマンドを使用する方法

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

Nexus サーバーを設定するための詳細な手順

1. ネクサスサービス構築の意義イントラネットの統合プロキシとして、チームで共同開発する場合、全員が...

MySQL の binlog_format モードと設定の詳細な分析

MySQL レプリケーションには、SQL ステートメント ベースのレプリケーション (SBR)、行ベ...

Docker で Rancher をデプロイする方法 (落とし穴なし)

操作前に必ずお読みください:注意:管理に rancher を使用する場合は、k8s クラスターが構築...

SQL 文における複合主キーと結合主キーに関する予備的研究

1. 複合主キーいわゆる複合主キーとは、テーブルの主キーが複数のフィールドで構成され、ビジネス上の意...

JSは賞金の重さに基づいて当選確率を計算します

目次1. シナリオ例1.1. 抽選の賞品名を設定する1.2. 各賞の重みを設定する1.3. ラッキー...

Nginx が Apache より優れている理由

Nginx は、わずか数年で Web サーバー市場の大部分を占めるようになりました。周知のとおり、N...

CSS は、小さな鋭角のチャット ダイアログ ボックスで鋭角の吹き出し効果を実現します。

1. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...

Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル

準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...

Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

最近、Web 開発のフロントエンドとバックエンドの技術を学んだので、その後の管理を容易にするためにプ...

Vue3 を使用してポップアップ コンポーネントをカプセル化するのは簡単ですか?

目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...