4.16.2014

SubversionとGitを混在させて運用する

SubversionとGitを混ぜて使う事案が発生したので両方使用できるようにするにはどうすればよいかを検討した。
理由としてはプログラマはGitを使用したいが非プログラマはSubversionでもいっぱいいっぱいだからだ。
なのでSubversionで以下のリポジトリを作成した。

root
|-main
|  |-trunk
|  | |-foo
|  | |-bar
|  | |-piyo
|  |-branches
|  |-tags
|-graphics
   |-trunk
   | |-hoge
   | |-fuga
   | |-piyo(root\main\piyoの外部参照)
   |-branches
   |-tags

このように一つのリポジトリに複数プロジェクトを作成した。これによりプログラマはmain以下をgit-svnでクローンし、非プログラマはgraphics以下をSubversionでチェックアウトすることができる。
プログラマが必要としないリソースをわざわざクローンしなくてよいというメリットがある。
mainプロジェクト側にgraphicsプロジェクト側から渡したいものがある場合やmain側にあるツールをgraphicsプロジェクトから参照したい場合は、Subversionの外部参照を用いてgraphics側からmainの特定ディレクトリを参照するように設定してあげればよい。
注意する点としてmainプロジェクトはGitでアクセスするのが前提のため、graphicsプロジェクト側を外部参照することはできない。これは設定次第でどうとでもなるのでそこまで今のところ困っていない。
運用方法にまだ課題はあるがしばらくこれで進めることにした。