問題
競合を解決するためにマージ ツールを設定する際に、マージ ツールに送信されたファイルは、含まれているコンテンツに対して正しくありません。Stack Overflow で検索してみましたが、答えが見つかりませんでした。
詳細
私はGITが初めてです。詳細を確認するために、Bitbucket にプライベート リポジトリを設定しました。Windows 7 64 ビットと次のソフトウェアがあります。
- GIT クライアント: SmartGit/Hg
- コードエディター: IntelliJ IDEA Ultimate
- マージ: P4Merge || KDiff3
KDiff3 が SmartGit/Hg から呼び出された場合:
(A) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_base_2787531226782357806_README.md
(B) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_ours_2686269382530657828_README.md
(C) C:\Users\ユーザー名\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_theirs_8849401324186420794_README.md
(出力) D:\Path\to\project\README.md
KDiff3 が IDEA から呼び出された場合:
(A) C:\Users\Username\AppData\Local\Temp\Merge_Result2324777776464644375.md
(B) C:\Users\Username\AppData\Local\Temp\Local_Changes7034162268721107201.markdown
(C) C:\Users\Username\AppData\ Local\Temp\Changes_from_Server__revision_d7bcd6bd85df4f7bae648786dfa944825991b4f3_1371061438544389037.markdown
(出力) D:\Path\to\project\README.md
- (A) ベースを正しく表示します。IDEA の場合、「Merge_Result」は紛らわしいですが、少なくともベース データは含まれています。
- (B) の内容は、LOCAL である必要がある HEAD データです。
- (C) の内容は、HEAD であるべき場所に LOCAL データを表示しています。
- (OUTPUT) は、マージ/解決を保存する競合ファイルの正しい場所です。
私の理解では、ローカル データは mine/ours/yours/local ファイルにあり、head データは theirs/remote/head ファイルにある必要があります。
設定
SmartGit/Hg P4Merge 設定:
ファイル パターン: *.md
コマンド: P:\Program Files\Perforce\p4merge.exe
引数: ${baseFile} ${leftFile} ${rightFile} ${mergedFile}
SmartGit/Hg KDiff3 設定:
ファイル パターン: *.md
コマンド: P:\Program Files (x86)\KDiff3\kdiff3.exe
引数: ${baseFile} ${leftFile} ${rightFile} -o ${mergedFile}
問題が解決したら、ファイル パターンを更新します。
IDEA KDiff3 設定:
実行ファイルへのパス: P:\Program Files (x86)\KDiff3\kdiff3.exe
パラメータ: %2 %1 %3 -o %4
質問
P4Merge と KDiff3 の両方に同じ問題があるため、ローカルの GIT インストールに何か問題があるのではないかと思われますが、これをトラブルシューティングして解決するために次にどこを見ればよいかわかりません。何が間違っていて、どうすれば修正できますか?
Git の学習を進めたいのですが、差分ツールやマージ ツール (またはそれらが使用しているデータ) の精度に不安があると、それに集中できません。
参考文献
P4Merge: http://www.perforce.com/perforce/doc.current/manuals/cmdref/P4MERGE.html
KDiff3
: http://kdiff3.sourceforge.net/doc/documentation.html
あと 3 つありますが、それ以上のリンクを投稿するほどの評判がありません。それらは、Bitbucket、Araxis ドキュメント、および P4Merge のドキュメント化されていないオプション/引数/パラメータを参照するスタック オーバーフロー ページに相当します。私は Araxis を使用していませんが、多くの異なるプログラムでコンフリクト リゾルバーの設定を見つける場所について、適切な指示がいくつかあります。
対立を生み出す
README.md (初版)
# This is my README
This file has been modified BASE
引く。
README.md (Bitbucket/Web ページで編集、コミット、承認済み)
# This is my README
This file has been modified SERVER
README.md (ローカルで変更)
# This is my README
This file has been modified LOCAL
スタッシュの変更。引く。スタッシュを適用します。おめでとう!これで、解決する必要のある競合が発生しました。