Subversion(SVN)は、バージョン管理システムのひとつで、ソフトウェア開発の現場やドキュメント管理など幅広く利用されています。中でも「svn checkout」コマンドは、リポジトリから作業コピーを取得するための基本中の基本。
この記事では、Linux環境でSubversionリポジトリを取得する際の「svn checkout」コマンドの使い方について、初心者にもわかりやすく解説していきます。
基本的な使い方から、オプションの活用、エラー時の対処法まで、実践的な内容を紹介します。
Subversion(SVN)とは何か?
まずはSubversionについて簡単に説明します。
Subversion(SVN)は、Apache Software Foundationによって開発された集中型のバージョン管理システムです。ファイルの変更履歴を記録し、過去のバージョンへの戻しや複数人での共同作業を可能にするツールとして、多くの開発プロジェクトで使用されています。
Gitのような分散型と違い、SVNは一元的なリポジトリで変更を管理するため、リモートのサーバーにあるリポジトリとやり取りしながら作業します。その最初のステップが、「リポジトリの取得」=checkout です。
svn checkout とは?
「svn checkout」は、SVNリポジトリの内容をローカル環境にコピー(チェックアウト)して作業できるようにするためのコマンドです。
このとき取得されるのは「作業コピー(working copy)」と呼ばれるもので、ユーザーはこの作業コピー上でファイルの追加、修正、削除などを行い、その後「svn commit」でリポジトリに反映するという流れになります。
基本構文
svn checkout <リポジトリURL> [ローカルディレクトリ]
例:
svn checkout https://svn.example.com/project/trunk myproject
この例では、リポジトリの trunk
を myproject
ディレクトリとしてローカルに取得します。
svn checkout の実行手順
1. SVN クライアントのインストール
Linux環境で svn
コマンドを使うには、まずSubversionクライアントをインストールしておく必要があります。多くのLinuxディストリビューションでは、標準パッケージとして提供されています。
Ubuntu / Debian系:
sudo apt update
sudo apt install subversion
RHEL / CentOS系:
sudo yum install subversion
2. リポジトリのURLを確認する
リポジトリのURLは、管理者やプロジェクトのREADMEなどで案内されているはずです。例:
https://svn.example.com/repos/project
アクセスには認証が必要な場合もあるため、事前にユーザー名・パスワードを確認しておきましょう。
3. checkoutの実行
svn checkout https://svn.example.com/repos/project/trunk
実行後、作業コピーがカレントディレクトリに作成されます。
svn checkout のオプション活用
svn checkout
は単純な使い方の他にも、いくつかの便利なオプションがあります。
–username と –password
認証が必要なリポジトリにアクセスする場合:
svn checkout https://svn.example.com/repos/project/trunk --username yourname --password yourpass
セキュリティの観点から、--password
を省略すると対話的にパスワード入力を求められるため安全です。
-r オプションでリビジョン指定
特定のリビジョンを取得したい場合:
svn checkout -r 105 https://svn.example.com/repos/project/trunk
リビジョン105の状態を取得できます。
svn checkout によるディレクトリ構成
通常、SVNリポジトリは以下のような構成で管理されています:
project/
├── trunk/
├── branches/
└── tags/
trunk:
開発の中心となる最新版のコード。
branches:
機能追加や修正などのための分岐コード。
tags:
リリース時点など、特定の状態を保存するスナップショット。
checkout 時に trunk
や branches/feature-x
など、必要な部分だけを指定して取得できます。
よくあるエラーと対処法
Error: Repository moved permanently
svn: E175011: Repository moved permanently to 'https://new-url...'
→ リポジトリのURLが変更された可能性があります。管理者に確認しましょう。
Error: Certificate verification failed
svn: E230001: Unable to connect to a repository
→ SSL証明書に関する警告です。--trust-server-cert
オプションを使うことで一時的に回避可能:
svn checkout https://svn.example.com/project --trust-server-cert --non-interactive
認証情報の削除
以前入力したユーザー名・パスワードをクリアしたい場合は、以下のコマンドでキャッシュを削除します:
svn logout https://svn.example.com
または、~/.subversion/auth
ディレクトリを削除します。
svn checkout の応用:スクリプト化
定期的にチェックアウトを行う場合やCI/CDに組み込む場合は、スクリプトにしておくと便利です。
#!/bin/bash
URL="https://svn.example.com/repos/project/trunk"
DEST="myproject"
if [ ! -d "$DEST" ]; then
svn checkout "$URL" "$DEST"
else
echo "Directory already exists: $DEST"
fi
まとめ
「svn checkout」コマンドは、Subversionでの作業の出発点です。リポジトリからローカルに作業コピーを取得し、そこから開発作業がスタートします。
基本的な使い方を押さえておくことで、バージョン管理のトラブルを避け、効率的にプロジェクトを進めることができます。
本記事を参考に、まずは一度 svn checkout
を実行してみてください。コマンドラインから始まるバージョン管理の世界は、意外とシンプルで奥深いものですよ。