sahara3のブログ

プログラミング関連のメモみたいなものを、つらつらと書くかもしれない。

git svn dcommit でSubversionに記録されるコミットログ

諸般の事情でSubversionの中央リポジトリーを使わなくてはならないが、複数人で分散作業したくなった時。

git-svnが使えそうな気がしていたが、Subversion側にどのようなコミットログが残るか心配だった。たとえば、各人がgit内で適当に書いたログがそのまま載ってしまうのだろうか、とか。

少し試してみた感じだと、気をつければ、なんとかなるような感触。

  • svn-master
    • git-master (git svn clonse -s svn-master してきたやつ。1つにする。)
      • git-work (git clone git-master してきたやつ。人数分作ってよい。)

こんなかんじの階層にしておき、おおよそ以下の流れで作業する。

  1. 各人の作業はgit-workでやる。
  2. 各人の作業がよい感じになったら、git-masterにpull-requestする。
  3. git-masterの管理者は、git pull --no-commit でpullする。
  4. git-masterの管理者は、pullした内容に問題なければ、git commit する。
    • このときのコミットログがSubversionにも記録される模様。
  5. git-masterから、git svn dcommit する。


3で --no-commit を付けないと、git-workでコミットログした時の内容がそのままSubversionのコミットログになるっぽい。


あまり細かく試してはいないけれども、うまく運用すれば、何とかなりそうだ。