SVNのマージ怖い

この記事は2019年06月17日に公開されました。 情報が古い可能性があります。

こんにちは、殿内(@tonoccho)です

弊社では現在Gitへの移行をゆるゆると進めつつSVNを使っています。この辺歴史的な経緯もあってあなかなか重いんですが何にしても今はSVNを使っています。

いつでもコミットできることの利点

Gitでは戦法のリポジトリにPushしない限りコミットし放題だしブランチも作り放題です。所詮全てローカルの話ですからね。

ですがSVNではコミットすると全員に影響が出ます。なのでなかなかコミットしづらい。

先ずはブランチを作ろう

そんなわけなので基本的にブランチを作ってそこで作業します。そうすればコミットし放題素晴らしい。適宜メインのブランチからマージしてきて同期したりしながら進めます。

この辺はGitとあまりノリは違わないと思います。作ったブランチがサーバーにも作られるわけでそんなにポンポン作るのも気がひけるくらいです。

ブランチの作業をメインに持っていく手順

GitならPRとかMRとかそういったレビュー機能を持ったサーバーがあるのでいいですけど 、SVNの場合はそういうのないので、メインブランチとの差分を出して云々という作業がいります。

ここで注意しないといけないのは、メインブランチにマージするタイミングです。

例えばメインブランチにマージしてからレビューにかける、何かしかの指摘があったらそこで直してパッチを作って開発ブランチに当ててテストする、ということができたりできなかったりしてるわけです。

何らかの理由があるんだろうけど、そこを追求する時間もモチベーションもないわけですしね。

パッチがうまくできないならマージバック、、、出来ない!

じゃぁ一旦コミットして開発ブランチにマージしようか、となるとこれはこれで出来ない。会社のビルドプロセスがそうなってるというのもあるんですが、そもそもメインブランチにコミットしちゃうと全員が影響を受けます。

なので、「コミットしていいよ」と合意が取れた変更しかコミットできません。

そんなわけですからパッチがうまく使えないとこの辺詰むわけです。

頭を使う

メインのリポジトリにプッシュしない限り何も起こらないGitでは考えなくていい(逆にpushで頭使うけど)のだけど、SVNではコミットとザーバー側の更新が分離してないので頭使います。

早くGitにならないかなぁ

技術の最新記事

考えの最新記事