46

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

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

私たちが直面している問題を修正するための最良の方法は何ですか?

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

4

20 に答える 20

26

私はちょうどこの問題を抱えていました、そして原因はディレクトリが衝突しているとしてフラグを立てられたということであるように思われました。修正するには:

svn update
svn resolved <the directory in conflict>
svn commit
于 2010-08-06T12:42:25.010 に答える
19

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

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

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

于 2010-05-12T19:21:37.720 に答える
5

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

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

これがお役に立てば幸いです:)

于 2014-08-26T08:03:11.777 に答える
4

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

于 2009-07-24T13:26:42.130 に答える
4

私はちょうど同様の問題を抱えていましたが、問題を引き起こすための分岐やマージはありませんでした。私の回避策は次のとおりです。

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

今はすべて問題ないようです。

于 2010-01-04T04:33:20.237 に答える
3

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

私の場合、履歴が失われることはありませんが、svn move / copy / delete関数を使用する場合、svnはトランクを移動し、次にsvnはブランチをトランクに移動しました。

于 2009-07-14T13:40:08.303 に答える
3

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

于 2012-10-02T15:51:30.813 に答える
2

私は同じ問題を抱えていました、その背後にある理由はわかりませんが、ターミナルに入力して修正しました

svn update

それから私はそれがうまくいったことをコミットしてブームします!

于 2017-02-08T20:23:41.820 に答える
1

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

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

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

于 2009-10-22T14:16:34.233 に答える
1

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

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

それでも問題が解決しない場合は、バグをログに記録してください。

于 2009-05-04T17:05:33.117 に答える
1

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

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

残念ながら、これにより、すべてのファイルの履歴が「失われる」ため、大きな違いが生じます。しかし、時間の制約のため、他の選択肢はなかったようです。

根本的な原因が何であったか、そして将来それを回避する方法を知りたいので、私は他の人が持っているかもしれないどんな答えにもまだ興味があります。

于 2009-05-04T20:55:50.070 に答える
1

Mac10.6.5のSVN1.6.5でも同様の問題があり、SVN 1.6.9にアップグレードすると、コミットが成功しました。

于 2010-12-14T12:29:02.240 に答える
1

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

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

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

ただし、削除されたパッケージ(何も含まれていない)をコミットできない場合がありました

。回避策:

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

私の最後のヒント...

しかし、パッケージ/プロジェクトをもう一度同期するのが簡単な場合があり、その後はすべてが再びうまく機能します。



私の構成について:

  • Eclipseネオン
  • SVNインターフェース:JavaHL(JNI)1.8.13(r1667537)
  • VisualSVNサーバーマネージャー、バージョン:3.3.1



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

于 2016-10-02T18:57:29.333 に答える
0

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

それは可能ですか?

于 2009-06-02T17:33:27.237 に答える
0

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 <location> から、サブルートの場所から削除しsvn pd svn:mergeinfo <location> ます。次に、これらの変更をコミットする必要があります。

  5. すべてが完了したら、もう一度マージしてみてください。

于 2009-07-24T13:54:54.933 に答える
0

疑わしいですが、作業ディレクトリでsvncleanupを実行すると役立つ場合があります。

于 2009-08-03T14:53:33.930 に答える
0

同じ問題が発生し、頭を殴り、レプレソトリのディレクトリを「/」から「/ trunk」に変更し、TortoiseSVNで「Switch」コマンドを実行するのを忘れたことがわかりました。

于 2010-10-28T13:30:41.250 に答える
0

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

于 2013-04-10T16:54:44.010 に答える
0

どうやらSVNはあまり信頼できるプログラムではありません。私は同じ問題を抱えていて(TurtoiseでSVNを使用)、. csファイルのコンテンツを保存してから、1つのリビジョンに戻ることで問題を解決しました。これは、次のような競合を示しています:"<<<<<<<ファイル名私の変更

=======リポジトリリビジョンからマージされたコード"

私は特別なことは何もしていませんが(一度だけリビジョンを元に戻しました)。

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

于 2014-06-23T07:50:02.470 に答える
0

ありがとうジェイミーブロックこの作品は私のために

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

私はちょうどこの問題を抱えていました、そして原因はディレクトリが衝突しているとしてフラグを立てられたということであるように思われました。修正するには:

  1. svnアップデート
  2. svnが解決しました
  3. svn commit
于 2018-03-15T12:19:51.763 に答える