SVN バージョン管理

SVN とは?

SVN (Subversion) はバージョン管理ツールであり、プログラムファイルをバージョンごとに管理できる。

checkout (co)

リポジトリからローカル作業領域へソースを取得する。

使い方

svn checkout [SVNURL] [チェックアウト対象]

$ svn checkout https://desktop-8kkel5e/svn/kimkc/
Checked out revision 0.

add

SVN で管理するファイルやディレクトリを追加する。追加後は commit を実行しないとリポジトリに反映されない。

使い方

svn add [追加するファイル名]

$ svn add Test.java
A         Test.java
$ svn commit
adding Test.java

commit (ci)

ローカルで変更した内容をリポジトリへ適用する。

使い方

svn commit [コミットするファイル名] -m [ログに残すメッセージ]

$ svn commit Test.java -m "test"
Adding         Test.java
Transmitting file data .done
Committing transaction...
Committed revision 1.

update (up)

リポジトリの最新内容でローカルソースを更新する。

使い方

svn update

$ svn update
Updating '.':
At revision 3.

delete(del, remove, rm)

SVN で管理しているファイルやディレクトリを削除する。削除後は commit を実行しないとリポジトリに反映されない。

使い方

$ svn delete [SVN 管理一覧から削除するファイル名]

$ svn delete text.txt
D        text.txt
$ svn commit
Deleting test2.c

SVN の変更ファイル状態を確認する

使い方

svn status

repository url を確認する

使い方

$ svn info
Path: .
Working Copy Root Path: D:\svn-file-test\kimkc
URL: https://desktop-8kkel5e/svn/kimkc
Relative URL: ^/
Repository Root: https://desktop-8kkel5e/svn/kimkc
Repository UUID: 08d25a28-c52d-f14b-9aa0-5c24a007a8d5
Revision: 0
Node Kind: directory
Schedule: normal
Last Changed Rev: 0
Last Changed Date: 2019-07-30 09:50:14 +0900 (화, 30 7 2019)

log

Repository 内のファイル変更履歴を参照する。

使い方

$ svn log [PATH]

より詳しく見る場合:

$ svn log -v
$ svn log
------------------------------------------------------------------------
r3 | kimkc | 2019-07-30 13:52:22 +0900 (화, 30 7 2019) | 1 line

test3
------------------------------------------------------------------------
r2 | kimkc | 2019-07-30 11:14:30 +0900 (화, 30 7 2019) | 1 line

test2
------------------------------------------------------------------------
r1 | kimkc | 2019-07-30 10:00:24 +0900 (화, 30 7 2019) | 1 line

test
------------------------------------------------------------------------
$ svn log -r 30:100 test.c

リビジョン番号 30 から 100 の範囲で test.c のログを出力する。

blame

各行を誰が修正したかを確認する。

$ svn blame sample.c

export

リポジトリから元のファイルだけを取得する。

使い方

svn export [SVNURL] [保存先]

$ svn export http://svn.bds.fbwotjq.com/www/manager/trunk/ docs_manager

特定リビジョンのソースだけを export する

export はバージョン管理用の付属ファイルを除外し、純粋なソースだけを取得するため、主に source release 用途で使われる。-r オプションを指定すると、特定リビジョンのソースを取得できる。

使い方

svn export [SVNURL] [保存フォルダ] -r [リビジョン番号]

svn export https://desktop-8kkel5e/svn/www/manager/trunk/ docs_manager -r 186

import

使い方

svn import [アップロード対象] [SVNURL] -m [ログに残すメッセージ]

$ svn import docs_js https://desktop-8kkel5e/svn/www/manager/trunk/ -m "svn import test"

info

現在接続されている SVN ファイルリポジトリの情報を参照する。

$ svn info

$ svn info
Working Copy Root path : /home/
URL : http://192.168.0.1/project
Relative URL : ...

update

現在のファイルリポジトリに保存されている最新の変更内容を取得する。

使い方

svn update

$ svn update
Updation '. :
At revision 1111.

diff

変更されたファイル内容を比較する。

使い方

svn diff --revision [上の log で確認した r 数字の数字部分] [比較するファイル名]

$ svn diff --revision 1111 test.c
===================================
--- //test log
+++//new log
....

relocate

リポジトリ URL が変更されたとき、ローカル側で URL を変更する。

使い方

SVN 1.6 以下

svn switch --relocate {以前の URL} {変更後の URL}

SVN 1.6 以上

svn relocate {変更後の URL}
$ svn relocate https://svn.devkuma.com/svn/kimkc

SVN の現在バージョンを確認する

$ svn --version

参考