Subversion でリベースしたい

仕事では大人の事情で Subversion を使わざるをえないんだけど、 Subversion でも Github Flow みたいに、ブランチ切って作業するように努めてはいる。

今回、他の作業が入って、ブランチをだ〜いぶ放置していたら、その間に trunk に結構修正が入ってしまった。 trunk の修正内容をブランチにマージすると、最終的にブランチを trunk にマージするとき衝突しまくった過去があるので、リベースしたい。

Git なら rebase で一発だけど、Subversion には rebase コマンドはない。 仕方ないので、他の方法をとることにした。

具体的には、リベースしたい feature ブランチがあるとき下記の手順をおこなった。

  1. trunk から最新リビジョンを起点に新しいブランチ rabase_feature を作成
  2. feature ブランチを rebase_feature ブランチにマージする
  3. feature ブランチを削除
  4. rebase_feature ブランチを feature にリネーム

これでリベースっぽくなった。 ただ、旧 feature ブランチの履歴を引き継げないから完璧ではない…。 もっと上手いやり方はあるのかも。

Subversion から Git に移行するのが個人的には一番いい。 Visual Studio に Git バンドルされないかな。 そうなれば大人の事情もクリアできそうなんだけど。