問題タブ [diff3]
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.
perl - Subversion で diff と diff3 に 1 つのスクリプトを使用するには?
ファイルの内容に応じて使用する外部差分を決定する Perl スクリプトがあります。外部diff3も決定するために使用したいと思います。
スクリプトがどのように呼び出されているかを知るための最良の方法はどれですか?
最後の 3 つのパラメーターをキャッチし、それらがすべてファイルであるかどうかを確認して、diff3 オプションを使用することを計画していましたが、よりクリーンな方法があることを願っています。
git - Git と KDiff3 で 3 者間比較を行う
KDiff3 で 3 者間比較を使用できるように Git を設定することはできますか?
自動マージするにはあまりにも異なる 2 つのブランチがあります。各マージ ポイントを確認するだけです。最善の方法は、他のブランチからの変更が必要なブランチをチェックアウトして、次のように言うことです。
次に、[KDiff3 でファイルを結合] を選択します。ファイルを調べた後、コミットするだけです。
merge.conflictstyle と diff.conflictstyle を diff3 に設定しましたが、KDiff3 はまだ双方向の diff で始まります。これは可能ですか?Git が共通の祖先のハッシュもパラメーターとして送信する場合、これは可能だと思いますが、そうですか?
SVN と BC3 でこれを行う方法についての議論がありますが、Git と KDiff3 については何も見つかりませんでした。
merge - GNU diff3 (3 方向マージ) が予期しない結果をもたらす
ファイル MINE と YOURS が OLD の子孫であると仮定します。
FILE_MINE=
FILE_OLD=
FILE_YOURS=
コマンドdiff3 -m MIND OLD YOURS
は次のとおりです。
diff3 は、MINE と YOURS が同一の変更を行ったことを解決できません。
なんで?そして、この問題を解決する方法はありますか?
これであなたの脳をくすぐります:
diff OLD MIND
出力にdiff OLD YOURS
同一のハンクがあります。
これらのハンクは、スリーウェイ マージ中に「キャンセル」されるべきではありませんか?
windows - Windows用のdiff3のようなプログラム?
私は Linux ユーザーであり、通常は kdiff3 を使用して 3 つの (テキスト) ファイルを相互に比較します (たとえば、svn の競合がある場合)。それを行うためのさまざまなプログラム(diff3やmeldなど)を知っていますが、Windows用はありません。
Windows 用の 3-file-differ はありますか?
svn - Subversion構成:diff3-has-program-argは何のためにありますか?
Subversionにはオプションがありますdiff3-has-program-arg
My diff3
does support the --diff-program
option, but I don't see where to configure the program to be called.
- How do I do this?
- Why would I do this?
linux - コマンドラインを介してmercurialマージでdiff3を使用する
Putty で 3 つに分割された画面に座ってファイルを表示しています。KDIFF3 のコマンド ライン UI をナビゲートする方法に関するドキュメントを見つけるために Google に必要なものがわかりません。行ごとに移動する方法、または競合ごとに競合する方法、またはファイル全体を完全に取得する方法を理解しようとしています。マニュアルを探すのを手伝ってくれますか、またはこの GUI をナビゲートする方法を教えてくれませんか?
ありがとう
svn - Araxisマージは、マージ時にファイル名を表示しません
Araxisマージと統合されたsvnコマンドラインクライアントがあり、競合が検出されない場合でも手動でマージしたいと思います。たとえば、実行すると、〜/ .subversion/configファイルでdiff3外部エディターを設定します。
しかし、私が走るとき
Araxisマージでは、パネルタイトルに実際のファイル名が表示されないため、実際にマージしているファイルがわかりません。
araxisマージに完全なファイル名を表示させる方法を知っている人はいますか?
mercurial - hg diff3 との自動マージ
2 つの中央ブランチ/クローン (DEV と PRD など) を持つ Hg プロジェクトを考えてみましょう。誰かがホットフィックスを PRD にプッシュすると、中央サーバー上の自動化されたスクリプトが DEV に移動し、新しい変更をプルします。次に、修正プログラムを DEV にマージしようとします。
問題は、Hg に統合されたマージ ツールがひどいことです。同じファイルに並行して変更が加えられるとすぐに失敗します。次の例を見てください。
ご覧のとおり、ここには実際の競合はありません。kdiff を使用してローカルでマージを行うと、ユーザー入力なしでこの単純なケースが解決されます!
これらのケースを中央サーバーで管理する方法が欲しいです。kdiff3 をサイレント モードで使用することを考えましたが、kdiff3 をインストールすることはできません (これは、管理者アクセスさえできない CLI のみのシステムです)。このような単純なケースを解決できますか? hgrc で "[ui] /n merge = diff3" を設定しようとしましたが、3 つのバージョンが stdout に吐き出されるだけです。追加の構成が不足していますか? または、より簡単で優れたツールはありますか?
どうもありがとう
git - git での奇妙な競合
3 方向マージ (diff3) に関する記事を読みました。が競合を検出する方法の例を示します。例は次のとおりです。
最初に、OA と OB 後の差分を計算します。
と
作成後diff3 parse
:
そして、競合を検出した後:
競合を検出するこの方法に従って、簡単な例を試します: 最初にドキュメントがあります:
私は次の結果を得るために、ユーザー 1 の更新"a;"
を"a=0;"
ユーザー 2の更新に更新します。"b;"
"b=0;"
これら 2 つのドキュメントをマージすると、同じ位置 ( a and b are not at the same position
) で変更しなくても競合が発生します。なぜ私がこの対立を抱えているのか誰かが私に説明できますか?