FreeBSD 15

Subversion : インストール2026/02/11

 

バージョン管理システム Subversion のインストールと設定です。

[1] Subversion をインストールします。
root@dlp:~ #
pkg install -y subversion
[2] 任意の一般ユーザーでリポジトリを作成可能です。
例として [/home/freebsd/repos/project] を作成します。
freebsd@dlp:~ $
mkdir -p /home/freebsd/repos/project

freebsd@dlp:~ $
svnadmin create /home/freebsd/repos/project
# [-m "***"] ⇒ 任意のロギングするメッセージを入力

freebsd@dlp:~ $
svn mkdir file:///home/freebsd/repos/project/trunk -m "create"

Committing transaction...
Committed revision 1.
freebsd@dlp:~ $
svn mkdir file:///home/freebsd/repos/project/branches -m "create"

Committing transaction...
Committed revision 2.
freebsd@dlp:~ $
svn mkdir file:///home/freebsd/repos/project/tags -m "create"

Committing transaction...
Committed revision 3.
[3] 作成したリポジトリに、すでに別のディレクトリに作成している作業ファイルをインポートする場合は、以下のように実行します。
例として [/home/freebsd/work] 配下にある作業ファイルを、作成したリポジトリの [trunk] へインポートします。
freebsd@dlp:~ $
ls -l ~/work

total 38
-rw-r--r--  1 freebsd freebsd    10 Feb 11 08:59 testfile1.txt
-rw-r--r--  1 freebsd freebsd 72540 Feb 11 08:59 testfile2.txt
-rw-r--r--  1 freebsd freebsd   378 Feb 11 09:00 testfile3.txt

freebsd@dlp:~ $
svn import /home/freebsd/work file:///home/freebsd/repos/project/trunk -m "initial import"

Adding         work/testfile1.txt
Adding         work/testfile2.txt
Adding         work/testfile3.txt
Committing transaction...
Committed revision 4.

# 確認
# [list] サブコマンド は省略系 [ls] で代替可

freebsd@dlp:~ $
svn list file:///home/freebsd/repos/project/trunk

testfile1.txt
testfile2.txt
testfile3.txt
[4] リポジトリ内にすでに存在しているファイルを、自身の作業ディレクトリにコピーする場合は、以下のように実行します。
例として、リポジトリ [/home/freebsd/repos/project/trunk] にあるファイルを、自身の作業ディレクトリ [/home/freebsd/work2] へコピーします。
freebsd@dlp:~ $
svn checkout file:///home/freebsd/repos/project/trunk /home/freebsd/work2

# [checkout] サブコマンド は省略系 [co] で代替可

freebsd@dlp:~ $
svn checkout file:///home/freebsd/repos/project/trunk /home/freebsd/work2

A    work2/testfile1.txt
A    work2/testfile2.txt
A    work2/testfile3.txt
Checked out revision 4.

freebsd@dlp:~ $
ls -la ~/work2

total 55
drwxr-xr-x  3 freebsd freebsd     6 Feb 11 09:00 .
drwxr-xr-x  6 freebsd freebsd    13 Feb 11 09:00 ..
drwxr-xr-x  4 freebsd freebsd     8 Feb 11 09:00 .svn
-rw-r--r--  1 freebsd freebsd    10 Feb 11 09:00 testfile1.txt
-rw-r--r--  1 freebsd freebsd 72540 Feb 11 09:00 testfile2.txt
-rw-r--r--  1 freebsd freebsd   378 Feb 11 09:00 testfile3.txt
[5] 自身の作業ディレクトリにあるファイルを更新し、リポジトリへ更新を反映する場合は、以下のように実行します。
例として、更新した [/home/freebsd/work2/testfile3.txt] を、リポジトリへ反映します。
freebsd@dlp:~ $
cd ./work2
# [commit] サブコマンド は省略系 [ci] で代替可

freebsd@dlp:~/work2 $
svn commit testfile3.txt -m "update testfile3.txt 2026021101"

Sending        testfile3.txt
Transmitting file data .done
Committing transaction...
Committed revision 5.

freebsd@dlp:~/work2 $
svn info testfile3.txt

Path: testfile3.txt
Name: testfile3.txt
Working Copy Root Path: /home/freebsd/work2
URL: file:///home/freebsd/repos/project/trunk/testfile3.txt
Relative URL: ^/trunk/testfile3.txt
Repository Root: file:///home/freebsd/repos/project
Repository UUID: 368c9a7a-dc06-f111-93b3-19d75b9d2c0a
Revision: 5
Node Kind: file
Schedule: normal
Last Changed Author: freebsd
Last Changed Rev: 5
Last Changed Date: 2026-02-11 09:02:02 +0900 (Wed, 11 Feb 2026)
Text Last Updated: 2026-02-11 09:01:57 +0900 (Wed, 11 Feb 2026)
Checksum: 311a4a0367e2bc471aecba41d07d9a516a596a65

# ファイル単位ではなく全ファイルを [commit] する場合は以下

freebsd@dlp:~/work2 $
svn commit -m "update all 2026021101"

[6] 自身の作業ディレクトリに新規ファイルを作成し、それをリポジトリにも新規で反映する場合は、以下のように実行します。
例として、更新した [/home/freebsd/work2/index.html] を、リポジトリへ反映します。
freebsd@dlp:~/work2 $
svn add index.html

A         index.html

freebsd@dlp:~/work2 $
svn commit index.html -m "add new index.html 2026021101"

Adding         index.html
Transmitting file data .done
Committing transaction...
Committed revision 6.

freebsd@dlp:~/work2 $
svn update

freebsd@dlp:~/work2 $
svn list

index.html
testfile1.txt
testfile2.txt
testfile3.txt
[7] 複数人でリポジトリを共有して利用している場合に、他人が更新したリポジトリ上のファイルを、自身のワーキングディレクトリにマージする場合は以下のように実行します。
freebsd@dlp:~/work2 $
svn update

Updating '.':
U    testfile.txt
Updated to revision 12.
関連コンテンツ