トップ «前の日記(2005-02-12 (Sat)) 最新 次の日記(2005-02-20 (Sun))» 編集 RSS feed

継続にっき

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|

2005-02-18 (Fri)

))) Subversionリポジトリレイアウトの変更

次のように

repos (リポジトリ)
|-- project
|   |-- branches
|   |-- tags
|   |-- trunk
|   `-- vendor
|
~

すべてのプロジェクトを1つのリポジトリでまかなっていたのを

repos (ディレクトリ)
|-- project (リポジトリ)
|   |-- branches
|   |-- tags
|   |-- trunk
|   `-- vendor
|
~

という風に、1プロジェクト1リポジトリに変更。

これまでの経験から、こちらのほうがリポジトリのサイズの増加を抑えられるし(本質的な問題ではないにせよ) 他のプロジェクトに対する変更でリビジョン番号があがる事が無くなるのでよいかなと。 外部定義を使えばリポジトリをまたがって使うのも 問題ないみたい。

作業は簡単で、

$ svnadmin dump repos |
  svndumpfilter include project |
  sed -e 's/^Node-path: project\//Node-path: /g' \
      -e 's/^Node-copyfrom-path: project\//Node-copyfrom-path: /g' > project.dump

としてから、ダンプファイルの最初の方にある

Node-path: project
Node-action: add
Node-kind: dir
Content-length: 0

を消すとそれが元のリポジトリからprojectだけを抽出したものになるのでこれをsvnadmin loadするだけ。

リポジトリの移行が済んだらワーキングコピー側も(同一URLではあるけど一応)変更を反映。

$ svn switch file:///repos/project/trunk

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|
トップ «前の日記(2005-02-12 (Sat)) 最新 次の日記(2005-02-20 (Sun))» 編集 RSS feed