いつも通り、コミットする前にファイルの最新化をするためにフォルダの更新をかけると、
one or more files are in a conflicted state
という見慣れないメッセージが表示されて、更新に失敗した。
再度、更新をかけても同じエラーで更新が出来ない。
大体は更新を掛けなおせば解消するんだけど、2回同じエラーだったので、原因を探してみた。
メッセージ内容を素直に読んでみる
エラーメッセージを素直に解釈すると・・・
「one or more files are in a conflicted state」
「1つか複数のファイルが衝突状態になっている」
となる。
衝突って、何が?って感じになる・・・
編集状態の異なるファイル?
エラーで更新が出来なかったファイルは、メッセージとともに表示されているので、該当ファイルの存在しているフォルダを確認すると、「ファイル名.xxxx」(xxxxは数字)というファイルが複数ある。
該当ファイルは、修正をしたファイルではなかったので、番号が拡張子のファイルも含めて全て削除。
再度更新したら、あっさり解決した。
原因はVisualStudio?
正直、原因は分からないけど、VisualStudioで作業しつつ、他の作業者のコミットファイルを反映させるために更新をしたりすると発生しやすいような気がする。
推測でしかないけど、VisualStudioで編集中のファイルだったりで、SVNのロックとは別で読み取り専用だったりして保存できない状態でこういうファイルができてる気がする。
ロックが取得しきれていない?
競合とか、他人の更新の間違った上書きを防ぐために、基本的には修正するファイルのロックを取得するんだけど、場合によってはロックが取得仕切れていない?場合もある。
実際、VisualStudioで編集する時って、特にフォームの修正とかだと、修正が発生するファイルは複数(.Designerなど基本、自分で編集しないものなど)におよぶ。
後は、たまにあるのが編集をするためにロックを取得したものの、修正対象が他の作業者と被ることがあって、作業の進捗状況からファイルを譲らざるを得ないことがある。
そういう時に、ロックの譲り合いとかやってると、良く分からないことになってたりするw
まとめ
結局、どうしたら防げるのかは分からないけど、対処法は、conflictが発生しているファイルの除去。
修正しているファイルで消したくないような時は、一旦別フォルダにでも退避して、更新後にマージし直すほうがいい。
内容は違うけど、該当メッセージで検索したら多少参考に出来そうな知恵袋を見つけた。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1264304322