問題タブ [p4merge]
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.
linux - p4mergeでテキストマージを強制する方法は?
Perforce とそのデフォルトのマージ ツール p4merge を使用しています。vcproj
統合時に、解決したいいくつかの競合があります。
しかし、p4merge は何らかの方法でファイルの内容を解釈しようとし、「画像ファイルをマージできません」とだけ言って終了するようです。この方法では、競合を解決できず、差分を取得することさえできません。
これは非常に新しい報告されていないバグであるか、非常に些細な回避策があるかのどちらかです。Google 検索では (Twitter の投稿を除いて) 関連するものがまったく表示されないためです。
誰かが回避策を知っていますか?
(Perforce の Linux バージョンを使用しています。)
アップデート:
Perforce ファイル タイプは「テキスト」です。したがって、それらはバイナリではありません。
git - ディレクトリの差分を実行するとp4mergeが失敗しますか?
git の差分/マージ ツールとして p4merge を使用しようとしています。
しかし、深刻な問題が発生しました。
p4merge を difftool として使用でき、git difftool <sha1> <sha1>
うまく機能します。また、マージツールとしても使用できます。しかし、ディレクトリの差分を実行しようとすると、次のようなgit difftool -d <sha1> <sha1>
エラー ダイアログが表示されます。
エラー: '/var/folders/6s/6sCbckgPGH42yLSh2eXveE+++TI/-Tmp-/git-difftool.9rgKV/left' は無効なファイルです (またはそれを指しています)。「/var/folders/6s/6sCbckgPGH42yLSh2eXveE+++TI/-Tmp-/git-difftool.9rgKV/right」は無効なファイルです (またはそれを指しています)。
詳細については、「p4merge -h」を使用してください。
これは、p4merge がディレクトリ diff をサポートしていないために発生したのでしょうか? これを修正する方法はありますか?
ところで、これは私の.gitconfig
設定です
perforce - 誰かが変更リストで特定のモジュールに加えた変更を確認するにはどうすればよいですか
同僚がリファクタリングの一環として巨大なチェンジリスト (>1000 ファイル) を送信しましたが、perforce は単に「このチェンジリストには 1000 ファイルあります」と表示します。
Perforce p4merge または IntelliJ の perforce 統合/差分ツールを使用して、フォルダー/モジュール内のすべてのファイルに彼が加えた変更を確認したいと思います。
settings - P4Merge は比較方法の設定を忘れてしまいます。デフォルト値を設定するにはどうすればよいですか?
P4Merge を実行する場合、比較方法は常に最初は「行末と空白の違いを認識する」(別名、すべての変更) に設定されています。「行末と空白の長さの違いを無視する」を使用したいのですが、ツールを実行するたびに手動で再設定する必要があります。
設定を変更しました:
- ツールバーボタンで
- 設定ダイアログで
- [ファイル] メニューの
そしてそれは決して固執しません。実際、プログラムを閉じなくても、メニューに戻るたびに設定ダイアログのエントリがリセットされます。[ファイル] メニューの [終了] コマンドを使用する前、ウィンドウを閉じる前、およびマージを保存する前に設定を変更しました。
以前は、設定を保存して記憶させることができましたが、残念ながら、関連するソフトウェア バージョンの記憶はありません。私は P4Merge をスタンドアロンとして使用していましたが、残りの Perforce スイートはどれもインストールされていませんでした。
関連する可能性があるその他の補足情報で更新できます。
[編集: ファイル サブメニューではなく、表示されるたびに変更を無視してリセットするのは、設定ダイアログのラジオ ボタン設定です。]
git - p4merge と Git 1.8.3
としてgit
使用するように設定するにはどうすればよいですか?p4merge
mergetool
次に私の現状です。
git - ファイル名に対して GIT マージ ファイルの内容が正しくありません。(SmartGit/Hg || IntelliJ IDEA) && (P4Merge || KDiff3)
問題
競合を解決するためにマージ ツールを設定する際に、マージ ツールに送信されたファイルは、含まれているコンテンツに対して正しくありません。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 (初版)
引く。
README.md (Bitbucket/Web ページで編集、コミット、承認済み)
README.md (ローカルで変更)
スタッシュの変更。引く。スタッシュを適用します。おめでとう!これで、解決する必要のある競合が発生しました。
git - 競合マーカーを表示しないようにマージツールを設定するにはどうすればよいですか?
SmartSynchronizeをマージ ツールとして使用するように git を構成しましたが、実行するgit mergetool
と、次のような競合マーカーが表示されます。
私はP4Mergeを使用していて、それがこれらの競合マーカーを処理することを確認しましたが、 SmartSynchronizeのようにマージされたファイルを画面の中央に表示するのが本当に好きです。それで、私は何か間違ったことをしていますか、それともこのツールは競合マーカーを処理できないのですか?
私の.gitconfig
:
(また、P4Mergeでそのようにマージされたファイルを途中で表示する方法を知っている場合は、ぜひ知りたいです)
merge - accurev マージがファイル タイトルを外部マージ ツールに渡さない
p4merge
Accurev の外部マージ ツールとして使用しています。p4merge のラッパーを作成し、 (Tools-Preferences-Diff/merge) と CLI (AC_MERGE_CLI 変数)p4m -dw -tw 8 -nb %3% -nl %4% -nr %5% %a% %1% %2% %o%
の両方にコマンド " " を設定しました。acgui
では正常に動作しacgui
ますが、CLI バージョン ( ) を使用すると、Accurev は、およびaccurev merge <filename>
のファイル タイトルを渡しません。%3
%4
%5
どうしたの?CLI のファイル タイトルを取得するにはどうすればよいですか?
UPD: Accurev 6.0.1 を使用しています
mercurial - Mercurial で P4Merge を使用するための SemanticMerge によるテキスト マージの構成
http://www.semanticmerge.com/sm-guides/main.shtml#HowtoconfigurewithMercurialの指示に従いましたが、それらは kdiff3 用に構成されており、p4merge を使用してテキストのマージを行いたいと考えています。現在の mercurial.ini は次のようになります。
現在の構成では、.cs で終わるファイルに競合がある場合、SemanticMerge は期待どおりに動作しますが、SemanticMerge でマージ コマンドを使用してテキスト マージを実行すると、次のようなエラー アラートが表示されます。
非互換性がありますか、それとも上記の「semantic.args」セクションが正しく構成されていませんか?
更新 特定の変更でマージ ボタンをクリックすると、エラーが発生します。以下のスクリーンショットを参照してください。答えは正しいですが、「テキスト マージの実行」ボタンを使用してテキスト マージを実行する必要があります。