project.pbxproj がコンフリクトした!

チームでアプリを作ってるときに必須なのが Subversion とかのリビジョン管理ツール。結構、賢くできてて同じファイルを同時編集しても上手にマージしてくれるんだけど、たまにマージできないよーとなる。

最近、iOS アプリをチームで作り始めたんだけど、案の定コンフリクト発生。しかも、project.pbxproj ってシステムべったりな名前のファイルで ... (T^T)


コンフリクト箇所はこんな感じ。


ごちゃごちゃしたファイルでなんだかな〜と思ってたけど、よくよく眺めると 追加したライブラリとか、グループ名が見てとれる。どうやら、プロジェクトの構成管理ファイルっぽい。そんなファイルなら、簡単にコンフリクトも起こすわな。

今回の場合、コンフリクト位置が示されていて1行ずつ値がミスマッチってなってるけど、どうみても両ブロックを残すのが正解っぽい。

Xcode の比較画面は直接、編集もできるっぽいので、手作業で編集することにした。修正方法はこんな感じ。

  • コンフリクト箇所を表示する。
  • 右ペイン(サーバ側)からブロックを範囲選択&コピーし、左ペイン(ローカル側)のブロック下にペーストする。
  • コンフリクト表示を1つずつ左優先にする。
  • 右下にある「Update」を実行する。(コンフリクトがなくなると「Update」ボタンが押せる状態になる)


アップデート完了後、Xcode を再起動(おまじない)し、クリーンビルドして実行。アプリが起動できてほっと一安心。:-)

ペア作業している人にも取得してもらって、無事に動いた。あーよかった。

もっとも、今回の修正はたまたま上手くできたパターンかも...なので、こまめにアップデートやコミットをしてコンフリクトを起こさないようにすべきだね。:-)