#freeze
''目次''
#contents
~
----
*リポジトリの新規作成 [#rb6416a1]
+''準備''~
登録時のログ作成に使用するテキストエディタを環境変数 SVN_EDITOR, VISUAL, EDITOR のいずれかで指定する。~
subversion にはデフォルトのエディタは設定されてないので必ず指定が必要。
# export SVN_EDITOR=vi
~
+''SVNリポジトリ作成''~
# svnadmin create /home/svn/sample-project
# chown -R apache:apache /home/svn/sample-project ← apacheユーザーに所有権変更
~
+''trunk,tags,branchesディレクトリを作成''~
# mkdir -P /home/svn/temp/{trunk,branches,tags}
~
+''ディレクトリ構造をインポート''~
# svn import /home/svn/temp file:////home/svn/sample-project
~
+''後始末''
使用後のディレクトリを削除する
# rm -rf /home/svn/temp
別な方法として...~
Windous上でtrunk,tags,branchesの3つのフォルダが入ったtempフォルダを作成し、上記の''「SVNリポジトリ作成」''だけ実行後にTortoiseSVNでリポジトリにimportする。
*trunk,tags,branchesの運用 [#s6785128]
参考サイト:[[takayukisの日記>http://d.hatena.ne.jp/takayukis/20060609/1149845435]]から引用~
subversionのドキュメントには、おおむねこんなことが書いてあります。
* リリースが近づいたらリリースブランチを作り、
* ブランチ上ではバグフィックス以外の大きな変更はしないようになります。
* その間の機能追加などの大きな変更はtrunkで行います。
* ブランチはリリースするときにタグにコピーします。
* タグはそれ以上変更しないことでスナップショットとして使います。
* リリース後に見つかったバグの修正はブランチ上で行い、またタグをつけて修正版をリリースします。
-''subversionのドキュメント''~
--[[目次>http://svnbook.red-bean.com/en/1.4/index.html]]~
--[[関係ありそうなところ>http://svnbook.red-bean.com/en/1.4/svn.branchmerge.html]]~
:branches|
リリースが近づいたらリリースブランチを作成し、そのブランチではバグフィックス以外の大きな変更(機能追加等)は行わない。~
テスト的に機能を組み込むなどしたい時などもtrunkのコピーから作成する。~
:tags|
リリース用など。~
変更はここでは行わない。~
バグが見つかったらブランチで修正を行う。
:trunk|
通常の開発に使う。~
基本的にcheckoutはこのディレクトリから行う。~
~
サンプル
sample-project/ プロジェクトTop
├ branches/ ブランチを格納する為のディレクトリ
│ ├ develop/ 作成したブランチ
│ └ test-build/ 作成したブランチ
│ :
├ tags/ タグを格納する為のディレクトリ
│ ├ beta_release/ 作成したタグ
│ └ 1.0.0/ 作成したタグ
│ └ 1.0.0-r123/ 作成したタグ
│ :
└ trunk/ 本流のソースを格納
*リポジトリの移設 [#n499ab6d]
サーバの移設等でリポジトリを移動する際の方法
~
dumpの出力
# svnadmin dump /path/sample-project /backup/sample-project.dmp
~
dumpのリストア
# svnadmin create /newpath/sample-project ← svnリポジトリの新規作成
# svnadmin load /newpath/sample-project /backup/sample-project.dmp
*TortoiseSVNの設定メモ [#la10a55d]
**差分ビューアのコマンドライン [#t077cdb8]
C:\~~~\WinMergeU.exe -e -ub -dl %bname -dr %yname %base %mine
**マージツールのコマンドライン [#lfdfddbf]
C:\~~~\WinMergeU.exe -e -x -ub -wl -dl "■編集不可:相手(theirs) %tname■" %theirs -dm %mname %merged -wr -dr "■編集不可:自分(mine) %yname■" %mine