web-dev-qa-db-ja.com

SVNとの延期された競合を解決します

私はチーム環境でのSVNコマンドラインにかなり慣れていません。誤って修正のマージを延期しました。行った後:

svn status

私は得る:

?       Trivial/Trivial.xcodeproj/project.pbxproj.mine
?       Trivial/Trivial.xcodeproj/project.pbxproj.r280
?       Trivial/Trivial.xcodeproj/project.pbxproj.r276

ただし、これらの変更をマージする方法がわかりません。現在、プロジェクトを解析できないというエラーがXCodeで発生しています。誰かがこれらのリビジョンをマージする方法を教えてもらえますか?

25
Matt Hudson

これらのファイルは、差分または3方向マージの実行を支援するために存在します。ファイルのメインバージョンには、競合するコードと、競合を囲むマーカーが含まれます。したがって、別のオプションは、メインファイルを編集して、それらのマーカーを検索することです。競合を解決し、マーカーを削除します。

完了したら、次のようなコマンドを実行します。

svn resolve --accept=working Trivial/Trivial.xcodeproj/project.pbxproj

これにより、これらの他のファイルが削除されます。また、これらのファイルの1つからすべての変更を受け入れるだけで、競合を解決するオプションがコマンドに含まれていることもわかります。

参照: http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html#svn.tour.cycle.resolve

29
Mark Phippard

受け入れられた回答の続きとして、解決中に利用できる4つのオプションは次のとおりです。

svn resolve --accept=mine-full Trivial/Trivial.xcodeproj/project.pbxproj
svn resolve --accept=theirs-full Trivial/Trivial.xcodeproj/project.pbxproj
svn resolve --accept=base Trivial/Trivial.xcodeproj/project.pbxproj
svn resolve --accept=working Trivial/Trivial.xcodeproj/project.pbxproj

ベース:編集を行う前に最後にチェックアウトしたファイルのバージョンを選択します

動作中:変更と更新がサーバーからフェッチした変更から選択して選択するには、競合するテキストを「手動で」マージします(ファイル内の競合マーカーを調べて編集することにより)

これがさらに役立つことを願っています。

12
Anil