2011-02-19T00:02:40の更新内容

softwares/subversion/tips/index.wiki.txt

current previous
34,52 34,18
 
**リポジトリをリネームする
**リポジトリをリネームする
 
リポジトリをリネームする場合は、
リポジトリをリネームする場合は、
 
+新しいリポジトリ名で現在のリポジトリの複製を作る
+新しいリポジトリ名で現在のリポジトリの複製を作る
+
+svn switch --relocateで作業コピーのURLを更新する
 
+現在のリポジトリを削除する
+現在のリポジトリを削除する
 

        

        
~
という手順で変更できる。 例として、リポジトリと作業コピーがある状態でリネームする場合は次のようにする。
という手順で変更できる。
+

          
 
#code(sh){{
#code(sh){{
~
svnadmin create repo_old # リネーム前のリポジトリを作成
svnadmin create repo_new
~
svn co svn://localhost/repos/repo_old repo # リネーム前の作業コピー
svnadmin dump repo_old | svnadmin load repo_new
~
}}
rm -rf repo_old
+

          
+
上記のような手順で作成したリポジトリrepo_oldと作業コピーrepoがあるとする。 まずは、リネームしたいリポジトリrepo_oldの複製を新しいリポジトリ名(ここではrepo_new)で作成する。
+

          
+
#code(sh){{
+
svnadmin create repo_new # リネーム後のリポジトリを作成
+
svnadmin dump repo_old | svnadmin load repo_new # リポジトリを複製
 
}}
}}
+

          
 
なお、svnadmin dump/loadではリポジトリのパーミッション、設定ファイル類はコピーされないので、忘れずにコピーする
なお、svnadmin dump/loadではリポジトリのパーミッション、設定ファイル類はコピーされないので、忘れずにコピーする
+

          
 
#code(sh){{
#code(sh){{
 
chmod -R g+w repo_new
chmod -R g+w repo_new
~
cp -ipr repo_old/conf/* repo_new/conf/
cp -ipr repo_old/conf/* repo_old/conf/*
+
}}
+

          
+
次に、svn switch --relocateで作業コピーのURLを更新する。 更新の前後でURLが変わり、リポジトリUUIDはそのままとなる点に注意。
+
#prompt{{
+
$ svn info ./repo
+
パス: repo
+
URL: svn://localhost/repos/repo_old
+
リポジトリのルート: svn://localhost/repos/repo_old
+
リポジトリ UUID: 62890211-38d3-4356-9e41-f5a96cf7b558
+
リビジョン: 3
+

          
+
$ svn switch --relocate svn://localhost/repos/repo_old svn://localhost/repos/repo_new ./repo
+
$ svn info ./repo
+
パス: repo
+
URL: svn://localhost/repos/repo_new
+
リポジトリのルート: svn://localhost/repos/repo_new
+
リポジトリ UUID: 62890211-38d3-4356-9e41-f5a96cf7b558
+
リビジョン: 3
+
}}
+

          
+
すべての作業コピーのURLの更新が終わったら、リネーム前のリポジトリを削除する。
+

          
+
#code(sh){{
+
rm -rf repo_old
 
}}
}}
 

        

        
 
**リポジトリの一部分を切り出す
**リポジトリの一部分を切り出す