問題タブ [tree-conflict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - 削除/再追加によるティーの競合
ユーザー固有と思われるフォルダーをsvnから削除して無視しました(興味があればnbproject)。
これは不注意で、私が間違っていたことが判明したため、混乱を避けるためにパニックに陥り、無視を元に戻し、フォルダーを追加してコミットしました。
これは不注意でした。古いフォルダーがあった場所に「新しい」フォルダーを追加したことに気付きました。これにより、その後更新した人とのマージの競合が発生しました。このフォルダには多くの変更が加えられており、私自身のバージョンにも変更が加えられている可能性があるため、どの変更を保持する価値があるかが不明であるため、誰にとっても厄介な競合が発生することが保証されています。
svn を使用しているすべての人にこのツリーの競合が発生しないようにするにはどうすればよいですか?
マージが必要になると確信していますが、前のフォルダーをマージする方法がわかりません。通常のマージは機能しないようです (経験がないことは役に立ちません。ほとんどのドキュメントは単純な状況の場合)。
フォルダーをもう一度削除してからマージしたくなりますが、それがより大きな混乱を引き起こすかどうかはわかりません。
関連する質問へのリンクを含め、任意の提案をいただければ幸いです。私は、この状況に回答がどこに適用されるかを認識するのに十分な知識がありません。「マージで競合が発生しました」という豊富な質問はそうではないと思いますが、その中に役立つものは何も見つかりませんでした。
git - HEAD バージョンの行にコンテンツがない場合に git がマージの競合を表示する理由
git merge master
別のブランチから実行しようとすると、次の競合が発生します。
私は競合を解決する方法を知っていますが、HEAD バージョンには特定の行にコンテンツがないため、そもそもなぜ git がこれを競合として認識するのか興味があります。
マスターから3行を追加してマージするだけのgitの単純なケースではありませんか?
アップデート:
@Marcinは正しいです。答えに基づいて、テストを行いました。たとえば、以下のような git ツリーがあるとします。
temp.txt
の内容commit A
:
temp.txt
の内容commit B
:
temp.txt
inの内容commit C
は空です。
この時点で、次のようにします。
次に、次のものを取得します。
svn - ディレクトリの「ローカル削除、更新時の着信削除」が競合するのはなぜですか?
これは仮説に近い質問ですが、なぜこのケースが紛争とみなされるのか、私はずっと疑問に思っていました。リポジトリから既に削除されているディレクトリをローカルで削除した場合、期待どおりに解決されないのはなぜですか? 競合ステータスが必要になるとは考えていない、どのような特殊なケースがありますか?
svn - フォルダが削除された場合、TortoiseSVN を使用してマージ中にツリーの競合を処理する方法は?
私はこのシナリオを持っています:
- コンテンツを含むフォルダーがブランチのローカル コピーから削除されます。変更は SVN Branch にコミットされます。(このフォルダはまだトランクにあります)
- 今、ブランチからトランクまですべてをマージしたい
- トランクのローカル コピーに移動し、SVN からマージして、ブランチを選択します (最初に SVN-Branch から LocalCopy-Of-Trunk への変更をマージします)。
- ツリーの競合が表示されます
- tortoiseSVN ウィンドウを閉じて、エクスプローラーでフォルダー構造に移動します。
- フォルダーはそこにあります(ただし、SVNで競合しているとマークされています)
- フォルダー構造を手動で削除します(これは欲しいので、欲しいだけです)
- TortoiseSVN を右クリック -> TortoiseSVN -> 解決済みに移動すると、競合が表示されます。これを解決済みとしてマークし、[OK] をクリックします。
これは正しい方法ですか?
まさにこの瞬間、同じルートで SVN を使用して sth を作成しようとすると、次のエラーが表示されます。
エラー: サブツリーが欠落しているマージ トラッキングは許可されていません。トロイ回復アイテム
ローカルでマージしたすべてのもの (SVNBranch から LocalCopyOfTrunk まで) をトランクにコミットしたい場合、問題のあるフォルダーとそのコンテンツのステータスが missingと表示されます。コミットしたいものすべてにマークを付け (欠けているものは除きます)、[OK] をクリックすると、次の警告が表示されます。
移動/名前変更されたフォルダーの非再帰コミット (このコミットは再帰的ではなく、コミット用に選択された移動/名前変更フォルダーがあります。このような移動/名前変更は常にリポジトリで再帰的に実行されます。それでもコミットしますか?)
問題のあるルートの親フォルダーである TortoiseSVN->Revert を開いて元に戻すと、SVN は問題なく再び実行されます。しかし、どうすればそれらを削除できますか? このツリーの競合を解決するより良い方法は何ですか?
xcode - Xcode での SVN ツリーの競合の解決
Xcode で SVN からツリーの競合を解決しようとしています。ここの回答から 「PROJECTNAME」に1つ以上のツリー競合があるため、操作を実行できませんでした。コマンドラインを使用して競合を解決するだけです。問題ありません。私は SVN コマンド ラインの経験があるので、まさにそれを行います。
次に、Xcode に戻り、すべてが適切であることを確認し、すべてが「完了」したことをテストします。「ソース管理 -> 更新」を実行してから、「ソース管理 -> プロジェクト -> ブランチからマージ … -> トランク」を実行すると、愚かなエラー メッセージが再び表示されます。 ." および追加のメッセージ「ファイル conflictedFile1.m、conflicedFile2.m、および conflictedFile3.m にはツリーの競合がありました。」
実際、私の質問はこのツリーの競合を解決する方法ではありませんが、既に競合を解決したことを Xcode に伝えるにはどうすればよいですか? 更新/削除する必要がある古いsvnデータベースがどこかにありますか? そもそもこれを間違って解決しましたか?
おまけの質問:
Xcode のビルトイン SVN 機能を引き続き使用してマージなどを行うのは本当に素晴らしいことです。コマンド ラインを使用することはできますが、IDE に組み込みのマージ diff ツールがある場合は、マージのようなことはしたくありません。一般に、Xcode で SVN を適切に使用するためのアドバイスは大歓迎です。したがって、今後このようなことが起こらないようにするための具体的なアドバイスがあれば、とても嬉しく思います。
私がしたことは次のとおりです:(1)トランクからBranch1へのブランチ(2)Branch1にファイルを追加(および他の編集)(3)Branch1からBranch2へのブランチ(4)編集(新しいファイルなし)(5)マージBranch2 からトランクへ (6) トランクから Branch1 へのマージ -> ここで最初に作成されたファイルとのツリー競合
svn - Tortoise SVN でのツリー競合の解決
シナリオは次のとおりです。
ローカルに「01.07.T1」という名前のフォルダーを作成し、その中にいくつかのコンテンツを入れて、Tortoise SVN で更新しました。私の友人は、同じ内容で「01.07.t1」という名前のフォルダーをローカルに作成しました。また、tortoise SVNでそれを更新しました..現在、明らかにSVNでのツリーの競合でしたが、それを解決するために、無意識のうちに、フォルダー(つまり、01.07.T1のもの)を削除し、SVNの更新を行いました。その後、私はファイルをコミットしました..これは、ファイルの1つが削除され、大文字と小文字を区別しないSVNが他のデバイスでそれらのファイルの更新を提供していないときに、新しい競合を引き起こしました.誰かが解決するために必要な手順を提案してください.ツリーの競合..
前もって感謝します..