SVNの間違った使い方

【間違った使い方】

  • マージを定期的に行わない
  • branchをSVNで切らない(Subversion book に従ってない)
  • 目的別にbranchを切らない


SVNはConcurrentなバージョン管理システム
これを理解せずに運用すると酷い目に合うのだ。



そして、オイラも今、まさに、その酷い目に合っている一人;;


どんな状況かというと...

branch:
 2ヵ月前から性能対策のためにbranchされた
 r539でr1101

trunk:
 1ヵ月前から障害対応が始まった
 r532-r1895


一度もマージしていない...

しかも、branchをtrunkのexport&importで切ってる...
# つまり、移動やリネームをSVNが追っかけられない。


branchの変更ファイル数は約600
trunkの変更ファイル数は約700

双方の最終リビジョンのdiffは20万行orz


それをまとめてマージしようっていう状況 。

間違った使い方3拍子そろったカンジNooooo!


やったことあるヒトは分かると思うけど、このテの作業は心が折れそうになります。

一般的に一時的なbranch少なくとも1週間に1度はマージするもの。
# バージョンfixのためのbranchでバックポートするだけとかは別だけど。


「trunkで障害対応始まる前にbranchマージすべき」って言ったのに...


そして、まさか、マージする係りが自分になるとは!!!

branchの最初と最後のdiffを見ながら、
WinMergeでtrunkにbranchの変更を移す。
数行ごとにVSでエラーがないか確認。


死ぬるwww




一番アレなのは、branchで性能対策以外にリファクタリングやってる事。
物理構成変えたり、ネームスペース全置換してたり、キャストのやりかた変えたり、メソッドリネームしてたり、ログ埋め込んでたり...


本来、性能対策は計測ありきなのに。
まさに、パレートの法則の逆を行ってる。
「2割の目的のために8割の変更を行っている」カンジ。

# 「間違った性能対策」w


なんで、今までマージしなかったのか?
Concurrentな意識のないマネージャが、
「性能対策の効果が認められるまでマージすべきじゃない」
と言ったからだそうだ。


間違ってはいないが、いろいろ徹底しきれていなかったですな。

性能対策以外のことをやっているのが問題。
リファクタリングするならtrunkか別のbranchでやるべきだったということだ。