Subversion リポジトリの作成から各操作のまとめ

Subversionで使用する各コマンドについて

概要

Subversionはソースを管理するための便利な管理システムです。
オープンソースとなっており、無料で使用できます。
当記事では、Subversionで使用する代表的なコマンドを紹介します。

リポジトリの作成

ディレクトリを作成して、svnadmin createを実行するだけでリポジトリを作成できます。


$ makedir /home/user/svn/sample
$ svnadmin create /home/user/svn/sample
$ svn mkdir file:///home/user/svn/sample/trunk file:///home/user/svn/sample/tags file:///home/user/svn/sample/branches -m 'Create trunk,tags, and branches.'

既存のプログラム(project)をimportする場合は以下のようにします。


$ svn import project file:///home/user/svn/sample/trunk -m 'import sample'

checkout チェックアウト

checkoutを実行して、リポジトリのプログラムを取り込みます。
以下では、trunk内のプログラムをsystemディレクトリ内にcheckoutしています。


$ svn checkout file:///home/user/svn/sample/trunk/ system

このようにして、開発環境ができあがります。

svn st 変更ファイルのチェック

svn stコマンドを入力することで、変更したファイルの一覧を表示することができます。
基本的に、新規追加ファイルは[A]、変更ファイルは[M]、削除ファイルは[D]と表示されます。

ファイルを追加する場合は、svn add [ファイルのパス]で追加します。
ファイルを削除する場合は、svn del [ファイルのパス]で削除を行います。

そして以下のようにsvn stコマンドで確認を行います。


$ svn st

svn diff 差分チェック

リポジトリと開発環境の差分を表示します。
ファイル内の変更点が全て表示されるため、どこを変更したのか確認することができます。


$ svn diff

svn revert 変更の取り消し

svn revertを使用することで、変更したファイルを元の状態に戻すことができます。
元の状態とは、リポジトリに登録されている状態です。


$ svn revert [ファイルのパス]

svn commit コミット(変更箇所をリポジトリに反映)

変更箇所をリポジトリに反映します。


$ svn ci -m "add images"

-m でメッセージを簡単に入力します。

svn update 最新状態をリポジトリから取得

現在の開発環境を最新状態にします。
最新状態とはリポジトリに登録されているファイルのことです。
つまり、リポジトリの内容を開発環境へ反映します。


$ svn update

svn switch リポジトリの切り替え

svn switchを使用することでリポジトリを切り替えることができます。
以下の例では、使用するリポジトリをsample2/trunk/に切り替えています。


$ svn switch file:///home/user/svn/sample2/trunk/

svn info リポジトリ情報の表示

svn infoでは、リポジトリのURL、リビジョンなどの各情報を表示します。


$ svn info

svn log コミットログの表示

コミットの履歴を表示します。
リビジョン、日時、メッセージなどが表示されます。


$ svn log

svn cp コピー

リポジトリなどのコピーを行います。
以下では、trunkの内容をtags/release-20130722にコピーしています。


$ svn cp file:///home/user/svn/sample/trunk file:///home/user/svn/sample/tags/release-20130722

svn export エクスポート

リポジトリなどのファイルをエクスポートします。
以下では、tags/release-20130722内のファイルをsystemディレクトリ内にエクスポートしています。


$ svn export file:///home/user/svn/sample/tags/release-20130722/ system/

svn delete 削除

リポジトリなどの削除を行います。
以下では、release-20130722のディレクトリを削除しています。


$ svn delete file:///home/user/svn/sample/tags/release-20130722

svn merge マージ処理

指定したリポジトリの内容とマージ処理を行います。
svn mergeでを実行したあと、競合の解決、その他のチェックを行った後にコミットします。


$ svn merge file:///home/user/svn/sample/tags/release-20130722
Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 からセッションファイルのownerはrootもしくはWebサーバのユーザに限るという制限が...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LINEと連携したテイクアウト事前注文システムの価格表 L.B.B.Cloud テイクイーツ ...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行し、動画の撮影日時を取得します。 コード $posted_at = ...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...
トップへ戻る