subversion自分用メモ

/home/pekatuu/svnmemo + hoge + hogera
                      |      + hogera2
                      |
                      + fuga + fugaga
                             + fugaga2

ディレクトリ階層がこうなってる。Treeの書き方おかしいとかいうな
この構造をもったリポジトリを作るのだ

リポジトリのルート + hoge + hogera
                   |      + hogera2
                   |
                   + fuga + fugaga
                          + fugaga2

リポジトリつくる

[~/svnmemo]$ svnadmin create ./repository
[~/svnmemo]$ ls
fuga/           hoge/           repository/

ディレクトリがなかったから勝手に作ってくれる

既存のディレクトリをリポジトリにブチこむ

[~/svnmemo]$ svn import hoge file:///home/pekatuu/svnmemo/repository -m "hogeee"
追加しています              hoge/hogera
追加しています              hoge/hogera2

リビジョン 1 をコミットしました。

importコマンドは指定したディレクトリ直下のファイル、ディレクトリを再帰的にリポジトリに追加する。"file://"にはリポジトリへのフルパスを書かないといけない

覗いてみる

[~/svnmemo]$ svn list -R file://`pwd`/repository
hogera/
hogera2/

はいミスったー!あほーあほー!いわんこっちゃない

とりあえずチェックアウト

[~/svnmemo]$ mkdir wc; cd wc
[~/svnmemo/wc]$ svn co file:///home/pekatuu/svnmemo/repository
A    repository/hogera
A    repository/hogera2
リビジョン 1 をチェックアウトしました。
[~/svnmemo/wc]$ ls
repository/

あほー!

ディレクトリを作る

作業コピー内でする方法と、レポジトリを直接たたくのと二通りある

作業コピー内でほげる
[~/svnmemo/wc]$ cd repository/
[~/svnmemo/wc/repository]$ svn mkdir hoge
A         hoge

この変更はコミットしたときに有効になる

[~/svnmemo/wc/repository]$ mkdir hoge
[~/svnmemo/wc/repository]$ svn add hoge

と同じだと思う

リポジトリを直接ほげる
[~/svnmemo/wc/repository]$ svn mkdir file:///home/kir/g-yamada/svnmemo/repository/hoge -m "made dir"

リビジョン 2 をコミットしました。

ディレクトリを移動する

やっとリポジトリ直下にhogeができたので、hogera*を移動する。これにも作業コピー上でするのとリポジトリをほげるのと2通りできる

WCほげ
[~/svnmemo/wc/repository]$ svn move hogera hogera2 hoge
A         hoge/hogera
D         hogera
A         hoge/hogera2
D         hogera2

やっぱりこのあとコミットがいる

リポジトリほげほげ
[~/svnmemo/wc/repository]$ REPO="file:///home/pekatuu/svnmemo/repository"
[~/svnmemo/wc/repository]$ svn move $REPO/hogera $REPO/hogera2 $REPO/hoge -m "moved"

リビジョン 3 をコミットしました。
[~/svnmemo/wc/repository]$ svn list -R file:///home/pekatuu/svnmemo/repository
hoge/
hoge/hogera/
hoge/hogera2/

できたぬ

次に勉強すること

マージとかブランチとかたぐとかなんかそんなん