LoginSignup
11
13

More than 5 years have passed since last update.

【svn】コマンドのみで手っ取り早くローカルPCにsvnリポジトリ作ってバージョン管理できるとこに持ってく方法

Last updated at Posted at 2014-12-01

概要

svnを利用してローカル環境でバージョン管理したい。
gitならgit initするだけで済むのだけどsvnはとりあえずバージョン管理したいと思ってリポジトリつくってやろうとすると結構面倒くさいうえに情報が何故か殆ど無い。(一応いくらかあるけど...)

ここでは特に手っ取り早くsvnでバージョン管理できる状態に持ってく方法だけを解説する。

流れ

  1. リポジトリ作成
  2. バージョン管理したいファイルをインポート
  3. [2]でインポートしたやつをチェックアウト
  4. 後はaddなりcommitなりstatusなりなんなり

gitを使ってると違和感あるんだけどsvnではチェックアウトしないとバージョン管理される状態にできない(これほんと?)。svn initなんてやっても.svnは作られない。

リポジトリの作成

command
$svnadmin create repository

これでカレントディレクトリにrepositoryという名前のsvnリポジトリができる。
どこに作成しても良いけど今回はどうせテスト的なもので最後には削除するのだろうからカレントディレクトリに作ってしまおう。

バージョン管理したいファイルをインポート

インポートというのはgitでいうところのgit add + git commit + git pushに近い。
リポジトリにディレクトリを突っ込む。この後チェックアウトするのに必要になる。

その前にバージョン管理したいファイルを作成する。とりあえずtrunkフォルダを作って適当にtouch testしておこう。

command
$mkdir trunk
$touch trunk/test

今作ったtrunkフォルダをsvn importコマンドでリポジトリに突っ込む。
ここで面倒くさいのがリポジトリのパスはURIで指定しなければならないので階層が深いところに作成するとパスの指定がだるすぎる(ようはリポジトリを相対パスで ./repository と指定できない)。
指定方法は[ file:///... ]でもいいし[ http://localhost/... ]でも良いけど前者の方がTabでディレクトリ名の補間が効くからおすすめ。

command
$svn import trunk file:///....../repository/trunk -m "適当にメッセージ書く"

うまくいけばこんな感じで結果が表示されるはず。

command
 -m "add trunk"
Adding         trunk/test

Committed revision 1.

[2]でインポートしたやつをチェックアウト

今追加したやつをチェックアウトしなければいけない。2度でま。(何とかならない?)
とりあえず[2]で追加したtrunkフォルダは邪魔なので残念な気持ちになりながら削除しよう。

command
$rm -r -f trunk

んでチェックアウトする。ここでもsvnのパスがURIなので深い階層にリポジトリ置くと悔しい思いをする。

command
$svn checkout file:///....../repository/trunk

うまくいけばこんな感じで結果が表示されるはず。

command
A    trunk/test
Checked out revision 1.

後はgitと同じような操作でいける。

実際にaddとかcommitとかやってみる

command
# 適当にtrunk/aaaを編集.
$vi trunk/test
iaaa[ESC]:wq[Enter]

# svn statusで編集状態を確認.
$svn status trunk
M       trunk/test

# svn commit で変更をコミット。gitと異なりadd -uは不要.
$svn commit trunk -m "change"

Sending        trunk/test
Transmitting file data .
Committed revision 2.

# 変更が反映されたか確認する為に削除して再度チェックアウトしてtrunk/testを表示してみる
$rm -r -f trunk
$svn checkout file:///....../repository/trunk
$cat trunk/test
aaa
11
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13