VS Code 開発コンテナーを使って Fossil 分散バージョン管理システムを試す - Linux 使いになりたい人向け
はじめに
分散バージョン管理システム Fossil というものがあると知ったので、簡単ですが調べてみました。
Fossil にはコマンドに Web システム実行用の機能が含まれているため、GitHub のようなものを手軽にプライベート環境で実行できます。
Fossil の画面(チケット一覧)
Git がこれだけ普及してエコシステムもできあがっているため、Fossil を使うメリットはあまりないかもしれないのですが、手軽にプライベート環境で GitHub のようなバージョン管理をしたいというときの選択肢として知っておいた方が良さそうだと考えて調べてみました。
この記事は VS Code と Docker が使える人で Linux 使いになりたい人向けの内容で書いてあり、対象者は次の人です。
- 分散バージョン管理システム Fossil に興味がある
- VS Code 開発コンテナーに興味がある
- Linux が使えるようになりたい
筆者は Linux 使いで、基本的に Linux 環境で動作確認をしています。ここで紹介しているようなちょっとしたことを少しずつ知ることを毎日続けることで Linux の機能を少しずつ理解することができるようになりました。Linux が使えるようになりたいと思っている人向けに、記事を公開していく予定です。
開発コンテナー dev-fossil
今回の Fossil のように、初めて使ってみるものについては、最近は基本的に開発コンテナーを使うようにしています。そのために用意したものを下記で公開しています。
ここでは、この dev-fossil 開発コンテナーを使う前提で説明します。今回は調査用の開発コンテナーで、調べる内容もインストール方法や簡単な使い方までなので、簡単に用意できるものにしてあります。ただし、root 権限で実行されるのでトラブルが起きやすい Docker ボリュームのバインドマウントは使わないようにしています。
動作に必要な環境 については次の通りです。
- Docker Engine
- Docker Compose Plugin
- VS Code
- Docker 拡張機能
- Dev Containers 拡張機能
次のように ZIP ファイルをダウンロードして展開し、カレントディレクトリーを ZIP ファイルを展開したディレクトリー内にある dev-fossil
ディレクトリーとします。
curl -o dcfwd.zip -L https://codeload.github.com/hiro345g/dcfwd/zip/refs/heads/main
unzip dcfwd.zip
cd dcfwd-main/dev-fossil
ここでは、以降、dev-fossil ディレクトリー(フォルダ)を ${REPO_DIR}
と表記します。
VS Code の起動
最初に dev-fossil
フォルダを開いた VS Code を起動します。ターミナルから起動する場合は、カレントを ${REPO_DIR}
にして次のようにコマンドを実行します。
code .
VS Code を起動してから、「ファイル」-「フォルダを開く」から dev-fossil
フォルダを開いても良いです。
dev-fossil 開発コンテナーの起動
dev-fossil 開発コンテナーを起動する手順は次の通りです。
- VS Code のエクスプローラーで
${REPO_DIR}/docker-compose.yml
を右クリック - メニューの
Compose Up
をクリック - VS Code の Docker で CONTAINERS にある dev-fossil - ubuntu:22.04 を右クリック
- メニューの
Visual Studio Code をアタッチ
をクリック - 開発コンテナーをアタッチした VS Code(左下に
コンテナー ubuntu:22.04(ubuntu2204)
と表示されているもの)で/root/
フォルダーを開く
これ以降、開発コンテナーの VS Code は dev-fossil の VS Code
と表記します。
Fossil のインストール確認と利用のための準備
それでは、Fossil のインストール確認と利用のための準備をします。次の順番で説明します。
- root ユーザーで
fossil
コマンドのインストールができるか確認 - Fossil を試用するときに使う Node.js 環境の用意
- Fossil を試用するときに使う node ユーザーの用意
-
apt
コマンドを使ったfossil
コマンドのインストール
fossil コマンドのインストール
dev-fossil 開発コンテナーは Ubuntu 22.04 ベースなので、Ubuntu でインストールする手順に従います。ここでは次のようなインストール用スクリプトを用意しました。
if [ ! -e ${HOME}/.local/bin/fossil ]; then
if [ "x${USER}" = "x" ]; then
apt-get update && apt-get -y upgrade
apt-get -y install curl sqlite3
fi
curl -sLJO https://www.fossil-scm.org/home/uv/fossil-linux-x64-2.23.tar.gz
if [ ! -e ${HOME}/.local/bin ]; then
mkdir -p ${HOME}/.local/bin
fi
tar xf fossil-linux-x64-2.23.tar.gz -C ${HOME}/.local/bin/
fi
PATH=${HOME}/.local/bin:${PATH}
${HOME}/.local/bin/fossil
ファイルが Fossil の実行用コマンド fossil
になります。これが存在しない場合にインストールスクリプトで用意するという処理になっています。
また、root ユーザー以外でも使用する予定なので、if [ "x${USER}" = "x" ]; then (略)fi
の処理で apt-get
コマンドは root ユーザーがスクリプトを使うときだけ実行するようにしてあります。
最後の PATH=${HOME}/.local/bin:${PATH}
はインストール後に dev-fossil コンテナーで使うためのもので、通常のインストール時には必要がありません。別スクリプトで用意するまでもないので、ここに入れてあります。
次の手順で dev-fossil コンテナーを使って install-fossil.sh
を dev-fossil コンテナー内に用意し、それから dev-fossil コンテナーのターミナルを開きます。
- Docker ホストの VS Code で
${REPO_DIR}/devcontainer-script/install-fossil.sh
を右クリック - dev-fossil の VS Code のエクスプローラーで右クリック
- メニューにある
貼り付け
をクリックしてinstall-fossil.sh
を dev-fossil 開発コンテナーへコピー - dev-fossil の VS Code のエクスプローラーに貼り付けられた
install-fossil.sh
を右クリック - メニューにある
統合ターミナル
をクリックして dev-fossil の VS Code のターミナルを表示
準備ができたら dev-fossil 開発コンテナーの install-fossil.sh
を実行します。手順に従っていれば、dev-fossil の VS Code のターミナルは install-fossil.sh
があるディレクトリーがカレントディレクトリーとなっているので、下記コマンドで実行できます。
sh ./install-fossil.sh
インストールができたら、fossil
コマンドをインストールした ${HOME}/.local/bin
を環境変数 PATH へ追加します。ここでは、install-fossil.sh
を .
コマンドで読み込めば良いです。
. ./install-fossil.sh
これで fossil
コマンドが使えるようになります。動作確認には fossil version
コマンドを実行してバージョンを表示してみると良いでしょう。
実行するコマンドについてまとめると次のようになります。バージョン表示の実行例も含めてあります。
root@ubuntu2204:~# sh ./install-fossil.sh
(略)
root@ubuntu2204:~# . install-fossil.sh
root@ubuntu2204:~# fossil version
This is fossil version 2.23 [47362306a7] 2023-11-01 18:56:47 UTC
これで、fossil
コマンドのインストールと動作確認ができました。
なお、ターミナルを新しく用意した場合は、環境変数 PATH には ${HOME}/.local/bin
が含まれていないので、. install-fossil.sh
を実行する必要があります。注意してください。
Node.js のインストール
Fossil を使ってみるときに、簡単な Node.js アプリのプロジェクトを生成してリポジトリへ入れてみるので、Node.js をインストールします。
インストールスクリプトが ${REPO_DIR}/devcontainer-script/install-node.sh
にあるので、これを install-fossil.sh
と同様に dev-fossil 開発コンテナーへコピーして実行します。
sh ./install-node.sh
インストールができたら node
コマンドのバージョンを表示して動作することを確認します。
node --version
これらの実行例は次のようになります。
root@ubuntu2204:~# sh ./install-node.sh
Setting up nodejs (20.11.0-1nodesource1) ...
(略)
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
root@ubuntu2204:~# node --version
v20.11.0
node ユーザーの用意
fossil
コマンドは一般ユーザーで実行されることが想定されているので、一般ユーザーを追加して使うことになります。dev-fossil 開発コンテナーをアタッチする VS Code は root ユーザーにアタッチしている環境なので、使い勝手があまりよくありませんが、ターミナルで簡単に実行できる範囲までしか調査しないので、困ることはあまりありません。
node ユーザーを開発コンテナーへ追加するには、${REPO_DIR}/devcontainer-script/useradd-node.sh
にあるスクリプトを dev-fossil 開発コンテナーへコピーして実行します。スクリプトの次の内容の1行なので、これを実行しても良いです。
useradd -m node -s /bin/bash
また、後で ${REPO_DIR}/devcontainer-script/init-angular.sh
を使うので、これもdev-fossil 開発コンテナーへコピーしてください。
それから install-fossil.sh
と init-angular.sh
を /home/node
へコピーして node ユーザーが実行できるようにします。
cp /root/install-fossil.sh /home/node
cp /root/init-angular.sh /home/node
ファイルの用意ができたら、su
コマンドでユーザーを変え、fossil
コマンドをインストールし、それから環境変数 PATH を更新します。init-angular.sh
はここでは実行しません。
su - node
sh /home/node/install-fossil.sh
. /home/node/install-fossil.sh
apt コマンドで fossil をインストールする方法
ここまでの手順通りに進めると node ユーザーで fossil
コマンドが使えるようになっているはず。
ただし、開発コンテナーを一度破棄してから再起動をしたり、よくわからないエラーが出て fossil
コマンドが使えないといったこともあるかと思います。その場合は、基本的に ${HOME}/.local/bin/fossil
ファイルを rm
コマンドで削除してから install-fossil.sh
を実行しなおせば解決するはずです。
それでも解決しない場合もあるかもしれないので apt
コマンドで fossil
コマンドをインストールする方法も紹介しておきます。
apt
コマンドでインストールすると、install-fossil.sh
スクリプトでインストールするものよりもバージョンが少し古い fossil
コマンドが使えるようになります。
apt
コマンドでインストール方法は、root ユーザーを使って、次のようにコマンド実行します。
apt-get update
apt-get -y upgrade
apt-get -y install fossil
インストールができたら、su
コマンドで node ユーザーになって、fossil
コマンドを使います。
su - node
なお、apt
コマンドでインストールした場合は、環境変数 PATH の更新は必要ありません。Linux をよく知らない人には、こちらの方法でインストールして使ったほうが良いかもしれません。
ただし、開発コンテナーを破棄した場合は、fossil
コマンドを再度インストールする必要があります。
リポジトリの新規作成と利用開始
Fossil のリポジトリを新規作成するには fossil new
コマンドを使います。
fossil new <リポジトリファイル名>
リポジトリファイル名は、プロジェクト名.fossil
のようにしておくと良いでしょう。Fossil ではリポジトリファイルは1つのファイルになるようです。ファイルサイズが大きくなったらどうなるのかが、少し気になります。
とはいえ、ファイルサイズが大きくなって管理しにくくなったら Git へ移行するというので良いだろうと個人的には考えています。
ここでは、proj001.fossil
という名前で作ってみましょう。
fossil new proj001.fossil
コマンドの実行例は次の通りです。
node@ubuntu2204:~$ fossil new proj001.fossil
project-id: d9ced61d1f10b11893788254bea37361bea83505
server-id: 893a7a271cd99bac4b06f5113d4ffbc15c979845
admin-user: node (initial password is "CpqjAzNa5S")
リポジトリファイルを作ったら、ファイル編集ができるようにするために、ワーキングディレクトリーを用意します。
fossil open <リポジトリファイル名> --workdir <ワーキングディレクト名>
こうするとワーキングディレクトリーが用意されます。このワーキングディレクトリーでは、どのリポジトリから open したかの情報を保持しています。
ここでは、ワーキングディレクトリー名をプロジェクト名の proj001 にして用意しましょう。
fossil open proj001.fossil --workdir proj001
コマンドの実行例は次の通りです。
node@ubuntu2204:~$ fossil open proj001.fossil --workdir proj001
project-name: <unnamed>
repository: /home/node/proj001.fossil
local-root: /home/node/proj001/
config-db: /home/node/.fossil
project-code: d9ced61d1f10b11893788254bea37361bea83505
checkout: d43179eb1f00286d2d9610691a0050865b76f964 2024-01-14 09:10:50 UTC
tags: trunk
comment: initial empty check-in (user: node)
check-ins: 1
ワーキングディレクトリーでのコードの準備
ワーキングディレクトリー proj001 で開発作業をするということで、プログラムコードを用意します。
ここでは README.md
ファイルを echo
コマンドで作成し、それから init-angular.sh
スクリプトで Angular アプリの雛形を生成することにして、次のコマンドを実行します。
cd proj001
echo "# app-sample-minimal" > README.md
sh /home/node/init-angular.sh
Angular アプリの雛形を生成する init-angular.sh
スクリプトの内容は次のようになっています。これを使うことで、よく使われるアプリのコードのバージョン管理について、Fossil を使う場合はどうすれば良いか確認がしやすくなります。
#!/bin/sh
npm exec -y --package=@angular/cli -- \
ng new \
--interactive false \
--defaults true \
--skip-git \
--minimal true \
app-sample-minimal
なお、このスクリプトを実行すると、途中で ? Would you like to share pseudonymous usage data (略)
と入力プロンプトになりますが、デフォルトで選択されている N
のままで良いので Enter キーを入力して進めます。
実際に実行すると次のような結果になります。
node@ubuntu2204:~$ cd proj001
node@ubuntu2204:~/proj001$ npm init -y
Wrote to /home/node/proj001/package.json:
(略)
node@ubuntu2204:~/proj001$ npm exec -y --package=@angular/cli -- \
ng new \
--interactive false \
--defaults true \
--skip-git \
--minimal true \
app-sample-minimal
? Would you like to share pseudonymous usage data about this project with the Angular Team
at Google under Google's Privacy Policy at https://policies.google.com/privacy. For more
details and how to change this setting, see https://angular.io/analytics. (y/N) ← N を入力
(略)
CREATE app-sample-minimal/src/assets/.gitkeep (0 bytes)
✔ Packages installed successfully.
バージョン管理をしないファイルの指定
バージョン管理をしないファイルについては、ワーキングディレクトリーの .fossil-settings/ignore-glob
ファイルへ保存します。
ここでは app-sample-minimal/node_modules/*
を指定します。*
はワイルドカードです。
mkdir .fossil-settings/
echo 'app-sample-minimal/node_modules/*' > .fossil-settings/ignore-glob
バージョン管理されていないファイルの一覧
ここで fossil extras コマンドを使うと、バージョン管理の対象となっていないファイルを確認できます。このコマンドは、リポジトリからチェックアウトしたファイルではないすべてのファイルを一覧表示するものです。
fossil extras
このコマンドは、現在のチェックアウトのルートディレクトリーから開始し、そのディレクトリーとサブディレクトリーのすべてのファイルを再帰的に検索するといった動作をします。
extras コマンドには、以下のオプションがあります。
オプション | 説明 |
---|---|
-R | 指定されたディレクトリーを再帰的に検索 |
-i | 指定されたパターンに一致するファイルを無視 |
-r | 出力を相対パスで表示 |
ドットで始まるファイル
ドット(.
)で始まるファイルは特別なので、対象として扱いたいときは --dotfiles
オプションをつけて fossil
コマンドを使います。
fossil extras --dotfiles
--dotfiles
をつけた場合とつけない場合とでは結果が変わります。
--dotfiles
をつけない場合の結果は次の通りです。
node@ubuntu2204:~/proj001$ fossil extras
README.md
app-sample-minimal/README.md
(略)
app-sample-minimal/tsconfig.json
--dotfiles
をつけた場合の結果は次の通りです。
node@ubuntu2204:~/proj001$ fossil extras --dotfiles
.fossil-settings/ignore-glob
README.md
app-sample-minimal/.gitignore
app-sample-minimal/.vscode/extensions.json
app-sample-minimal/.vscode/launch.json
app-sample-minimal/.vscode/tasks.json
app-sample-minimal/README.md
(略)
app-sample-minimal/tsconfig.json
ファイルのリポジトリへの追加
編集中のファイルについて、バージョン管理をする対象へ追加するには、fossil add
コマンドを使います。
fossil add
コマンドは、指定されたファイルまたはディレクトリーを現在のリポジトリへ追加する対象とします。ファイルまたはディレクトリーが既にリポジトリに存在する場合は、更新対象とします。
fossil add [ファイルまたはディレクトリー名]
proj001 のファイルについて、README.md、ドットファイルを含まない app-sample-minimal のファイル、app-sample-minimal に含まれるドットファイル、という順で fossil add
を使ってバージョン管理の対象にするには、次のようにコマンドを実行します。
fossil add README.md
fossil add app-sample-minimal/
fossil add --dotfiles app-sample-minimal/
これらを実際に実行した時の結果は次のようになります。
node@ubuntu2204:~/proj001$ fossil add README.md
ADDED README.md
node@ubuntu2204:~/proj001$ fossil add app-sample-minimal/
ADDED app-sample-minimal/README.md
ADDED app-sample-minimal/angular.json
(略)
ADDED app-sample-minimal/tsconfig.json
node@ubuntu2204:~/proj001$ fossil add --dotfiles app-sample-minimal/
ADDED app-sample-minimal/.gitignore
ADDED app-sample-minimal/.vscode/extensions.json
ADDED app-sample-minimal/.vscode/launch.json
ADDED app-sample-minimal/.vscode/tasks.json
ADDED app-sample-minimal/src/assets/.gitkeep
状態を確認するには fossil status
コマンドを使います。
fossil status
これを実際に実行した時の結果は次のようになります。
node@ubuntu2204:~/proj001$ fossil status
repository: /home/node/proj001.fossil
local-root: /home/node/proj001/
config-db: /home/node/.fossil
checkout: 3fa87b1f9e18e75c9bb7f894ab35e12614ca435b 2024-01-14 10:03:10 UTC
tags: trunk
comment: initial empty check-in (user: node)
ADDED README.md
ADDED app-sample-minimal/.gitignore
ADDED app-sample-minimal/.vscode/extensions.json
(略)
ファイルの内容を確定してリポジトリへ反映するには、fossil commit
コマンドを使います。コミットするときは、-m
オプションでコミット時のメッセージを指定します。
fossil commit -m "コミットメッセージ"
ここでは初めてのコミットなので init
というコミットメッセージで実行してみましょう。
fossil commit -m "init"
実行結果は次のようになり、favicon.ico がバイナリーファイルだという警告がでます。
node@ubuntu2204:~/proj001$ fossil commit -m "init"
./app-sample-minimal/src/favicon.ico contains binary data. Use --no-warnings or the "binary-glob" setting to disable this warning.
Commit anyhow (a=all/y/N)? ← デフォルトの N を選択するので、そのまま Enter キーを入力
Abandoning commit due to binary data in ./app-sample-minimal/src/favicon.ico
警告が出たファイルについては、fossil rm
コマンドを使って削除します。このコマンドについては、後でまた取り上げます。これを実行しても、ADD の状態から削除されるだけで、ファイルそのものがワーキングディレクトリーから削除されるわけではありません。
fossil rm ./app-sample-minimal/src/favicon.ico
改めて fossil commit -m "init"
を実行すると、今度はコミットが成功します。
node@ubuntu2204:~/proj001$ fossil commit -m "init"
New_Version: 2db5399089e9fb757f516fcf5e7b216e2108dcb5d2eb9832535899f4f2b774ca
バイナリーファイルの設定
調べたところ、バイナリファイルは文字列の検証処理から除外が必要なので、その設定をワーキングディレクトリーの .fossil-settings/binary-glob
ファイルへ保存します。
ここでは *.ico
、*.jpg
、*.png
を指定します。
echo '*.ico' >> .fossil-settings/binary-glob
echo '*.jpg' >> .fossil-settings/binary-glob
echo '*.png' >> .fossil-settings/binary-glob
次のように cat
コマンドを使って binary-glob
ファイルの内容を確認します。
node@ubuntu2204:~/proj001$ cat .fossil-settings/binary-glob
*.ico
*.jpg
*.png
それでは、.ico
ファイルをリポジトリへの追加しましょう。今度は次のように成功するはずです。
node@ubuntu2204:~/proj001$ fossil add ./app-sample-minimal/src/favicon.ico
ADDED app-sample-minimal/src/favicon.ico
node@ubuntu2204:~/proj001$ fossil commit -m "add favicon.ico"
New_Version: e629cccf57846bc80675e938281fd2e35819b342a546bee3a4c7052500235c41
ファイル削除のリポジトリへの反映
ファイルを追加するだけでなく、ワーキングディレクトリーでファイルを削除して、それをリポジトリに反映したいときもあります。その場合は fossil rm
コマンドを使います。
fossil rm [ファイルまたはディレクトリー名]
favicon.ico
ファイルに対して使ったときのように、ADD した状態になっているファイルについて ADD の状態を取り消すときにも使います。
fossil rm
コマンドと fossil add
コマンドを同時に実行したいときも多いので、そのために fossil addremove
コマンドというものも用意されています。
fossil addremove
ここでは、fossil addremove
コマンドを試すために、README.md
ファイルを削除し、sample.txt
ファイルを新規作成します。
rm README.md
touch sample.txt
それでは、fossil addremove
コマンドを実行してみましょう。ただし、実行した時にどういう結果になるかを見るために dry run で実行することにして、そのために -n
オプションをつけます。
実行結果は次のようになります。
node@ubuntu2204:~/proj001$ fossil addremove -n
ADDED sample.txt
DELETED README.md
added 1 files, deleted 1 files
Dry-run mode: no changes were made.
先程作成した .fossil-settings/binary-glob
がありません。--dotfiles
オプションもつけて実行してみます。すると、実行結果は次のようになります。
node@ubuntu2204:~/proj001$ fossil addremove --dotfiles -n
ADDED .fossil-settings/binary-glob
ADDED .fossil-settings/ignore-glob
ADDED sample.txt
DELETED README.md
added 3 files, deleted 1 files
Dry-run mode: no changes were made.
これで良さそうなので、確定しましょう。コマンドと実行結果は次のようになります。
node@ubuntu2204:~/proj001$ fossil addremove --dotfiles
ADDED .fossil-settings/binary-glob
ADDED .fossil-settings/ignore-glob
ADDED sample.txt
DELETED README.md
added 3 files, deleted 1 files
node@ubuntu2204:~/proj001$ fossil commit -m "2nd"
New_Version: ecf2a90366d17b69749d01675e69713d980faccdf09570f506312b66a47a88b8
Fossil の Web システム
Fossil は Web システムをコマンドですぐに実行できます。Web ブラウザで表示できるリポジトリ管理用の画面を提供する Web サーバーを起動してから、http://localhost:8080/ へアクセスすると Issue 機能や Wiki 機能が使える Web インタフェース画面が表示されます。
Fossil 用 Web インタフェースを提供するサーバーの起動
Fossil 用の Web インタフェースを提供するサーバーを起動するには fossil ui
コマンドを次のように実行します。
fossil ui <リポジトリファイル名>
dev-fossil コンテナーでは ~/proj001.fossil
ファイルというリポジトリファイルを用意したので、これを使ってみます。次のように実行します。
fossil ui ~/proj001.fossil
実行結果は次の通りです。
node@ubuntu2204:~/proj001$ fossil ui ~/proj001.fossil
Listening for HTTP requests on TCP port 8080
http://localhost:8080/
Docker ホストの Web ブラウザで http://localhost:8080/ へアクセスするとプロジェクト名が設定されていないという警告が表示された画面になります。http://localhost:8080/setup_config へアクセスするとプロジェクト名が指定できます。
「Project Name」の入力欄へ proj001
と入力してから、下の方にある「Apply Changes」というボタンをクリックするとプロジェクト名を proj001
へ更新できます。更新したら、Web ブラウザをリロードすると、プロジェクト名が表示された画面になります。
リポジトリのクローン
fossil clone
コマンドで http://localhost:8080/ にあるリポジトリをクローンできるようになります。試してみましょう。
fossil clone <リポジトリの URL> --workdir <ワーキングディレクトリー名> リポジトリファイル名
dev-fossil の VS Code で別のターミナルを起動して、~/repo
ディレクトリーを用意して、そこで fossil clone コマンドを実行します。
su - node
mkdir ~/repo
cd ~/repo
fossil clone http://localhost:8080/ --workdir proj001 proj001.fossil
これで、~/repo/proj001.fossil
に proj001
のリポジトリがクローンされ、ワーキングディレクトリー /repo/proj001
も作成されます。
実際のコマンドの実行結果は次のようになります。
root@ubuntu2204:~# su - node
node@ubuntu2204:~$ mkdir ~/repo
node@ubuntu2204:~$ cd ~/repo
node@ubuntu2204:~$ fossil clone http://localhost:8080/ --workdir proj001 proj001.fossil
Round-trips: 2 Artifacts sent: 0 received: 29
Clone done, wire bytes sent: 522 received: 118111 remote: 127.0.0.1
Rebuilding repository meta-data...
100.0% complete...
Extra delta compression... none found
Vacuuming the database...
project-id: 7ca68304a3c359a4d08bfc4a2b645e53691e1fa9
server-id: 18f02fb21f98f937481ed258c4563261e508df16
admin-user: node (password is "ik4qA7scw2")
opening the new proj001.fossil repository in directory proj001...
.fossil-settings/binary-glob
.fossil-settings/ignore-glob
app-sample-minimal/.gitignore
(略)
sample.txt
project-name: <unnamed>
repository: /home/node/repo/proj001.fossil
local-root: /home/node/repo/proj001/
config-db: /home/node/.fossil
project-code: 7ca68304a3c359a4d08bfc4a2b645e53691e1fa9
checkout: ecf2a90366d17b69749d01675e69713d980faccd 2024-01-14 11:10:29 UTC
parent: e629cccf57846bc80675e938281fd2e35819b342 2024-01-14 10:51:56 UTC
tags: trunk
comment: 2nd (user: node)
check-ins: 4
おわりに
以上、簡単ですが、dev-fossil 開発コンテナーを使って Fossil について動作確認も含めての調査ができました。調査の作業が終わったら、dev-fossil 開発コンテナーのクリーニングをします。
dev-fossil 開発コンテナーのクリーニングをするには、次のように Docker ホストで fossil-clean.sh
スクリプトを実行します。シェルスクリプトが実行できない OS を Docker ホストで使っている場合は、相当する処理を手作業で実行してください。基本的にスクリプト内にある docker
コマンドの部分を実行すれば大丈夫です。なお、クリーニングしても良い状態にしてから、実行するようにしてください。
cd ${REPO_DIR}
sh script/fossil-clean.sh
このスクリプトは、dev-fossil 開発コンテナーが使っていた Docker ボリュームと Docker ネットワークといったリソースについて、完全に破棄します。実行すると、開発コンテナーを破棄してから、Docker ボリュームと Docker ネットワークも破棄します。
開発コンテナーのおかげで、Docker ホストである普段つかている環境はクリーンなままです。開発コンテナーは便利ですね。
Discussion