1

トランクの作業コピーに変更を加えました。次に、コミットできるように別のブランチに切り替えたいと思いました。私はそうしました、そして今、私のプロジェクトは混乱しています。切り替え先のブランチはトランクの背後にあり、変更したファイルがありませんでした。イライラして、トランクに戻しました。

現在、「ローカル編集、切り替え時の着信削除」と言ういくつかの場所でツリーの競合があります。競合のため、これらをコミットできません。私が見ることができる唯一のオプションは、ローカルの変更を元に戻すか、基本的にプロジェクト全体を再チェックアウトしてすべての変更を失うことです。

もう 1 つの問題 - このようなツリーの競合が発生したフォルダーの 1 つを元に戻しました (そして削除しました)。これで、フォルダがリポジトリに存在することがわかりますが、ローカル プロジェクトから削除されており、更新しても作業コピーに取り込まれません。ここで何が起こっているのですか?1.リポジトリに存在する、2.削除したばかりなので作業コピーには存在しない、3.更新しても作業コピーに取り込まれない。どうしてこれなの?

なぜこれが難しいのですか?ローカルの変更があり、それらをコミットしたいと考えています。別のブランチに切り替えて再び戻ることが重要な理由がわかりません。切り替え先のブランチにファイルが存在しない場合、ファイルをブランチにコミットできないのはなぜですか?

これは、切り替え先のブランチに存在しなかったファイルへのローカル変更である、ツリーの競合の 1 つに対して Eclipse が私に与えているものです。ブランチになかったため、切り替えたときにファイルを削除したかったと思います。では、どうすればこれを修正できますか?本当にやりたいことは、それをブランチに追加して変更をコミットすることですが、競合が発生しているためできません!

Resolve Tree Conflict on my_jsp.jsp
Conflict Description:
local edit, incoming delete upon switch
Source left: (file) https://......./WebContent/WEB-INF/jsp/my_jsp.jsp@349
Source right: (none) https://......./WebContent/WEB-INF/jsp/my_jsp.jsp@353

それが私に与える唯一のオプションは、元に戻す、削除する、または比較することですが、これらはすべて受け入れられません. ローカルチェンジが多い!

4

1 に答える 1

1

最初の問題の場合:

できることの 1 つは、現在の変更のパッチを作成してから、トランクに戻ってパッチを適用することです。Linux を実行している場合、コマンドは次のようになります。

svn diff > ~/patch.diff
svn switch svn://path/to/trunk
patch -p0 < ~/patch.diff

これで、多かれ少なかれ元の場所に戻るはずです (うまくいけば)。Linux を実行していない場合は、Eclipse または SVNTortoise に同様のコマンドがあるはずです。新しいブランチに移動したい場合は、安全のためにもう一度 diff を作成してください。大幅に遅れている場合は手動で変更するか、最初にブランチをトランクにマージする必要があります (オプションの場合)。

2番目の問題について:

似たようなものを見たことがあると思いますが、何が問題だったのか思い出せません。svn up <file_name>不足しているファイルを更新しようとしましたか?

于 2011-06-30T05:10:05.270 に答える