Subversionでバージョン管理を開始

まず、バージョン管理をするファイルをローカルマシンで作成して、subversionサーバにインポートする。

$ dir ~/tmpdir
$ cd ~/tmpdir
$ vi hello.c でファイル作成
$ svn import -m "importing Test project" . svn+ssh://192.168.1.96/var/repos/svn/TestPrj/trunk
とすると
svn: E000013: ファイル '/var/repos/svn/db/txn-current-lock' を開けません: 許可がありません
となった
RaspberryPi4にログインして、/var/repos/svn配下にグループに対する書き込み権を付与。
$ sudo chmod -R g+w /var/repos/svn
ログアウトして、再度
$ svn import -m "importing Test project" . svn+ssh://192.168.1.96/var/repos/svn/TestPrj/trunk

さらに、リポジトリにtagsとbranchesを作る。RaspberryPi4で以下を実行。

$ svn mkdir -m "Create tags directory" svn+ssh://localhost/var/repos/svn/TestPrj/tags
$ svn mkdir -m "Create branches directory" svn+ssh://localhost/var/repos/svn/TestPrj/branchs

ローカルマシンでsubversionリポジトリをチェックアウト。

$ mkdir ~/svntest
$ cd ~/svntest
$ svn checkout svn+ssh://192.168.1.96/var/repos/svn/TestPrj

これで、TestPrjをSubversionでバージョン管理する環境ができた。

Subversionのサーバを立てた

なぜ今さらSubversion?

仕事で開発が継続している既存システムのうち、VCSがまたGitに移行せずにSubversionのまま運用されているものがあります。git-svnを使って運用することを目論んでいるので、環境や設定の調査をするためにSubversionサーバを立ててみた。

RaspberryPiにSubversionサーバーの環境を作ることにした。
参考にしたのはhttps://note.com/kazuyama4vrc/n/n567986633ffb
subversionをinstallして、/var/repos/svnをリポジトリとするよう設定する。

# subversionをインストール
$ sudo apt install subversion
# /var/repos/svnを作成し、オーナーとグループにRW権限を付与
$ sudo mkdir /var/repos/svn
$ sudo chmod 770 /var/repos/svn
# svnユーザーを作成し、svnグループにリポジトリにアクセスするユーザを追加する
$ sudo adduser --disabled-login --shell /sbin/nologin --gecos "Subversion Management User" svn
$ sudo usermod -aG svn アクセスを許可するユーザ名
# /var/repos/svnの所有者、所有グループを変更
$ sudo chown svn:svn /var/repos/svn
# /var/repos/svnにsubversionリポジトリを作成する
$ sudo --user=svn svnadmin create /var/repos/svn
# (一応実施)/var/repos/svn/dbにSGIDを設定
$ sudo chmod g+s /var/repos/svn/db

# /etc/tmpfiles.d/svnserve.conf を編集する。内容は
d /run/svnserve 0755 svn svn

# /etc/systemd/system/svnserve.service を編集する。内容は
[Unit]
Description=Subversion Server
After=syslog.socket network.target
Documentation=man:svnserve(8)

[Service]
Type=forking
PIDFile=/run/svnserve/svnserve.pid
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid --daemon --root=/var/repos/svn
ExecStop=/bin/kill ${MAINPID}
PrivateTmp=yes
User=svn
Group=svn

[Install]
WantedBy=multi-user.target

$ sudo systemctl daemon-reload

# ここで一旦テスト
$ sudo mkdir --mode 755 /run/svnserve
$ sudo chown svn:svn /run/svnserve
$ sudo systemctl start svnserve.service
$ sudo systemctl status svnserve.service
でエラーがないことを確認する。
$ svn info svn://localhost/
	パス: .
	URL: svn://localhost
	Relative URL: ^/
	リポジトリのルート: svn://localhost
	リポジトリ UUID: a85cfb70-c5b1-4923-a6ee-ce2446ab90cf
	リビジョン: 0
	ノード種別: ディレクトリ
	最終変更リビジョン: 0
	最終変更日時: 2024-09-14 18:26:15 +0900 (2024年09月14日 (土))

$ sudo systemctl enable svnserve.service
再起動したあとで再度ログインしsvn infoで確認

Debian Live on USB-Memory

USBメモリにDebian Live環境を作成したときのメモ

環境等
  • 作業環境:macOS Big Sur
  • 使用したUSBメモリ:Silicon Power USB2.0 Ultima-II I-Series 16GB
  • 作成したDebian Liveのバージョン:Debian Live 12.5.0
ISOイメージのダウンロード

https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid
から、debian-live-12.5.0-amd64-lxde.isoをダウンロード。(LXDEが好きなので)

ISOからdmgイメージに変換
$ hdiutil convert -format UDRW -o debian-live-12.5.0-amd64-lxde debian-live-12.5.0-amd64-lxde.iso
マウントポイントを調べ、アンマウトした後、書き込み
$ diskutil list
$ diskutil umountDisk /dev/disk3
$ sudo dd if=debian-live-12.5.0-amd64-lxde.dmg of=/dev/disk3 bs=1m