“ Commit Failedを修正するにはどうすればよいですか。ファイルxxxは古くなっています。 xxxパスが見つかりません。”

StackOverflow https://stackoverflow.com/questions/819896

  •  03-07-2019
  •  | 
  •  

質問

最近、subversionでのマージの結果のコミットに関して特に厄介な問題に遭遇しました。 Subversionサーバーは@ 1.5.0で、TortoiseSVNクライアントは@ 1.6.1です。

機能ブランチをトランクにマージしようとしています。マージは正常に機能するようです。ただし、コミットは次のエラーメッセージで失敗します。

Commit failed (details follow):
File 
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
path not found
You have to update your working copy first.

私の作業トランクは最新です。新しいフォルダを別のフォルダにチェックアウトして、マージを混乱させるようなローカルなデータが存在しないことを確認しました。私はこれについてさらに調査を行ったが、問題の一部はユーザーエラーだと思う。私たちの問題は次のとおりだと思います:

  1. 1.5より前とその後にSubversionクライアントとの作業をコミットする開発者がいました。これにより、マージ情報が破損する可能性があると思います。
  2. 他のブランチでは、部分マージを実行しました。つまり、ブランチのルートで常にマージを実行したわけではありません。これは、同じブランチ内でFlexと.NETの取り組みを更新しやすくするためでした。
  3. ブランチで循環(再帰)マージを実行しました。これは、複数の並列ブランチがあり、トランクの最新コードでブランチを定期的に更新したかったためです。

これらすべてのことは、Subversionの本/チームによって明示的に推奨されていません。私たちはレッスンを学び、今ではベストプラクティスを知っています。ただし、最初に最新のブランチをマージしてコミットする必要があります。

発生している問題を修正する最良の方法は何ですか?

トランクとブランチのすべてのマージ情報を削除することは実行可能なソリューションですか? いいえ。これを実行しましたが、上記のエラーは解決しません。

役に立ちましたか?

解決

今日も同じ問題があり、中間マージを行っていないため、最初の投稿から#1のみが適用される場合があります-ただし、ubuntuのsvnクライアントとwindowsのtortoisesvnの両方からコミットしました。幸いなことに、トランクには変更が加えられていないため、トランクをブランチに置き換えることができました。おそらく異なるsvnバージョンですか?とても心配です。

svn move / copy / delete機能を使用すると、私の場合は履歴が失われません-私はsvnをトランクに移動してから、svnがブランチをトランクに移動しました。

他のヒント

この問題が発生したばかりで、原因はディレクトリが競合しているというフラグが立てられていたようです。修正するには:

svn update
svn resolved <the directory in conflict>
svn commit

私はこれを1.6.2サーバー、1.6.8のカメで取得していました。すべてWindowsで、このブランチにはマージされません。

ディレクトリの名前を変更すると、何らかの理由で(おそらくAnkhSVNが原因で)ディレクトリ内の2つのファイルが「置換」としてマークされていました。 「通常」ではなく。ディレクトリ内の他のファイルにいくつかの小さな変更が追加されました。

置換済みとしてマークされたファイルを元に戻すと、問題が修正されました。

私も同じ問題を抱えており、次の方法で同じ問題を解決しました

svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"

これがあなたを助けることを願っています:)

作業コピーをコミットしようとしたときに同じ問題が発生しました。 Subversionが「パスが見つかりません」と報告するフォルダーを追加しました。無視リストへ。コミット(成功するはずです)。次に、同じフォルダーをSubversionに追加します。再度コミットします。

同様の問題が発生しましたが、問題の原因となる分岐やマージはありません。私の回避策は次のとおりでした:

  • svnは、作業フォルダー(バージョン管理外のファイルを含む)を一時フォルダーにエクスポートします。
  • 作業フォルダの名前をバックアップに変更します。
  • svnはトランクをチェックアウトします。
  • 一時エクスポートフォルダーからすべてのフォルダーを新しい作業フォルダーにコピーします。
  • svn commit。

すべてが正常になりました。

これは古い投稿ですが、この問題はかなり頻繁に発生します。私がそれを解決するために見つけた最も簡単な方法は、影響を受けるフォルダの.svn / all-wcpropsファイルの名前を変更/削除してから、更新を実行してコミットすることです。

同じ問題が発生しました。その原因はわかりませんが、ターミナルに入力して修正しました

svn update

そしてコミットし、機能しました!

ああ、男の子!これは悪いようです!私が考えることができる唯一のオプションは、作業コピーが破損しているということです。

作業コピーを削除して、新しいチェックアウトを実行し、再度マージを実行してください。

それでもうまくいかない場合は、バグを記録してください。

この問題に対する満足のいく解決策を見つけることができませんでした。しかし、私は不満足な解決策を見つけました。

トランク内のすべてのファイルを削除し、これらの変更をコミットしました。次に、ブランチコードをトランクにエクスポートし、すべてのファイルを追加して、大規模なコミットを行いました。これは私のトランクが1:1のブランチを模倣しているという影響がありました(とにかく欲しいものです)。

残念ながら、すべてのファイルの履歴が「失われた」ため、これにより大きな隔たりが生じます。しかし、時間の制約により、他のオプションはないようです。

根本的な原因が何であり、今後それを回避する方法を知りたいので、他の人が持つかもしれない答えに引き続き興味があります。

ブランチに大量の変更をマージしてトランクに戻した後、同じ問題が発生しました。私が見ることができた2つの解決策は、 Pacifika が提供するsvn moveソリューションを実行するか、手動でdiffツールでファイルをマージすることでした。しかし、私は回避策を見つけました...

動作していないマシンはSubversionクライアント1.6.5を実行していました。 Subversion 1.5.4を搭載したマシンでもまったく同じことをしましたが、動作しました!両方のマシンで、1)トランクのクリーンアウト、2)svn merge ...、および3)svn commitを実行しました。私のサーバーは価値がありますが、1.5.xです。

これが誰かの助けになることを願っています。

Mac 10.6.5のSVN 1.6.5で同様の問題が発生し、SVN 1.6.9にアップグレードされ、コミットが成功しました。

削除されたパッケージをコミットしようとしたときに同じ問題が発生しました(パッケージにはさまざまなJavaクラスが含まれていますが、パッケージからは何も必要ありませんでした)。

問題を解決するための私の解決策/回避策:

  • パッケージ全体を元に戻しました
  • 最初にコンテンツを削除しました
  • 削除されたコンテンツをコミットしました
  • 最後に、削除したパッケージを再びコミットしました(ほとんどの場合は機能しました:-))

ただし、時々、削除されたパッケージをコミットすることはできませんでした

回避策:

  • パッケージにダミークラスを作成しました
  • その後、上記の手順を繰り返しました

最後のヒント...

ただし、パッケージ/プロジェクトをもう一度簡単に同期すると、すべてが再び正常に機能する場合があります。



私の構成について:

  • エクリプスネオン
  • SVNインターフェース:JavaHL(JNI)1.8.13(r1667537)
  • VisualSVN Server Manager、バージョン:3.3.1



たぶん、ヒントの1つで誰かを助けることができます。

サーバー上でフォルダーを移動したときに似たようなものを見たと思いますが、作業コピーはまだ古いSVNフォルダー構造にバインドされていました。ブランチをマージする前に、誰かがトランク内で何かを動かしたかどうかはわかりません。

それは可能性ですか?

これは svn:mergeinfo プロパティがブランチとトランクの間のワックから抜け出す問題のようです。

次の質問につながります(亀を使用しているので、コマンドラインの指示はお許しください):

  1. トランクルートレベルまたはサブフォルダーレベルでマージしていますか?私の経験では、ルートレベルで行うのが常に最善です。これにより、トランク全体が一部ではなくマージされたと見なします(1.5.0ではsvnを大きく混乱させるようです)

  2. 次の質問は、-reintergrate パラメーターを使用したことですか?亀でこれに到達する方法を決して覚えることはできませんが、ブランチからトランクに戻るときは、このパラメーターを使用する必要があります。

  3. 再統合する前に、トランクをブランチにマージしましたか?これは、マージして戻るときに表示される可能性のある競合を削除するのに役立ちますか?

  4. ルートレベルにないブランチに svn:mergeinfo プロパティがありますか?これは常に問題を引き起こすことがわかっています。これはいつでも svn -R pg svn:mergeinfo で確認できます。次に、ルートの下にあった場所とリビジョンを記録し、それらが関連する場合は、 svn merge --record-only -r start:end&lt; location&gt; によってルートに移動します。 svn pd svn:mergeinfo&lt; location&gt; を使用してサブルートの場所からそれらを削除します。その後、これらの変更をコミットする必要があります

  5. すべての処理が完了したら、再度マージしてみてください。

疑わしいが、作業ディレクトリでsvn cleanupを実行すると役立つかもしれない。

同じ問題が発生し、頭を打ち、レゾリューションのディレクトリを&quot; /&quot;から変更したことがわかりました。 &quot; / trunk&quot;へ「スイッチ」をするのを忘れましたTortoiseSVNのコマンド!

うわー、これはEclipseでSVNを使用していたので、解決に時間がかかりました。最後に、私のために働いた唯一のことは、影響を受けていないファイルをすべてコミットし、(Eclipseを閉じて)プロジェクトディレクトリの名前を変更し、SVNからプロジェクトを再チェックアウトすることでした。正しく動作するようになりました!

SVNは信頼性の高いプログラムではないようです。私は同じ問題(TurtoiseでSVNを使用)を抱えていましたが、.csファイルのコンテンツを保存してから1リビジョン前に戻すことで解決しました。これは、次のような競合を示しました。 &quot;&lt;&lt;&lt;&lt;&lt;&lt;&lt;私の変更のファイル名

=======     リポジトリからマージされたコード 改訂&quot;

特別なことは何もしていません(一度リビジョンを設定し直すだけです)。

このファイルのコンテンツを保存済みのコンテンツに置き換えて保存し、TortoiseSVNで選択しました&#8594;解決しました。 その後、リポジトリへの変更をコミットできます。

Jamie Bullockにこの作品をありがとう。

ジェイミーブロックによると、

この問題が発生したばかりで、原因はディレクトリが競合しているというフラグが立てられていたようです。修正するには:

  1. svn update
  2. svnが解決しました
  3. svn commit
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top