コスギデンサン >> 情報系メモ >> Subversion

Subversion : リポジトリの操作 2016/10

trunkからbranchを作成する。
svn copy protocol:///path/to/repos/trunk protocol:///path/to/repos/branches/topic
※ SVNのブランチの作成はコピー元ディレクトリのシャローコピーである。

リビジョンを指定してbranchを作成する。
svn copy protocol:///path/to/repos/trunk@rev_no protocol:///path/to/repos/branches/topic


■branchの内容をtrunkにマージする手順。

ローカルの作業コピーをブランチに切り替える。
svn switch protocol://path/to/repos/branches/hoge_branch

ブランチが作成された時点のリビジョン番号を確認する。
svn log --stop-on-copy
※ --stop-on-copyオプションを使用すると、ブランチコピー前のログが出力されないので、
 表示されたログの最下段に表示される最小のリビジョン番号がブランチ作成時のリビジョン番号となる。

ローカルの作業コピーをトランクに切り替える。
svn switch protocol://path/to/repos/trunk

trunkへマージされる内容を確認する(dry-run)。
svn merge --dry-run -r XXX:HEAD protocol:///path/to/repos/branches/hoge_branch
※ XXXにはブランチが作成されたリビジョンを指定する。

branckの内容をtrunkへマージする。
svn merge -r XXX:HEAD protocol:///path/to/repos/branches/hoge_branch

マージした内容をコミットする。
svn commit -m マージ内容


■trunkの内容をbranchにマージする手順。

ローカルの作業コピーをブランチに切り替える。
svn switch protocol://path/to/repos/branches/hoge_branch

ブランチが作成された時点のリビジョン番号を確認する。
svn log --stop-on-copy

branchへマージされる内容を確認する(dry-run)。
svn merge --dry-run -r XXX:HEAD protocol:///path/to/repos/trunk
※ XXXにはブランチが作成されたリビジョンを指定する。

trunkの内容をbranchへマージする。
svn merge -r XXX:HEAD protocol:///path/to/repos/trunk

マージした内容をコミットする。
svn commit -m マージ内容


■タグの作成

ある時点のトランクのタグを作成する。
svn copy protocol:///path/to/repos/trunk protocol:///path/to/repos/tags/release-v1.0 -m タグコメント
※ SVNのタグはただのスナップショット。


■ブランチの削除

svn delete protocol:///path/to/repos/branches/hoge_branch