[解決済み] Git Diff と Beyond Compare
質問
差分ツールとして Beyond Compare 3 を git で起動することに成功しましたが、差分を取るときに、比較対象のファイルが読み込まれません。 最新バージョンのファイルだけが読み込まれ、他には何もないため、Beyond Compare の右ペインには何も表示されません。
私は Cygwin で git 1.6.3.1 を Beyond Compare 3 と一緒に動かしています。 ウェブサイトのサポート部分で提案されているように、このようなスクリプトで Beyond Compare をセットアップしました。
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"path_to_bc3_executable" "$2" "$5" | cat
この問題に遭遇した方、解決策をご存知の方はいらっしゃいますか?
編集してください。
私はVonCによる提案に従いましたが、私はまだ前と全く同じ問題を抱えています。私はGitにちょっと新しいので、おそらく私は正しくdiffを使用していないでしょう。
たとえば、私はこのようなコマンドでファイルの diff を見ようとしています。
git diff main.css
Beyond Compareを開くと、左ペインに現在のmain.cssが表示されるだけで、右ペインには何も表示されません。 私は、左ペインの現在の main.css を HEAD と比較して、基本的に私が最後にコミットしたものを見たいと思います。
私のgit-diff-wrapper.shはこのような感じです。
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"c:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat
私のgitの設定は、Diffの場合はこんな感じです。
[diff]
external = c:/cygwin/bin/git-diff-wrapper.sh
どのように解決するのですか?
余分なラッパー .sh ファイルは使っていません。私の環境は、Windows XP、git 1.7.1 on cygwin、Beyond Compare 3 です。以下は私の .git/config ファイルです。
[diff]
tool = bc3
[difftool]
prompt = false
[difftool "bc3"]
#use cygpath to transform cygwin path $LOCAL (something like /tmp/U5VvP1_abc) to windows path, because bc3 is a windows software
cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
[merge]
tool = bc3
[mergetool]
prompt = false
[mergetool "bc3"]
#trustExitCode = true
cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
次に $ git difftool を使って比較し $ git mergetool を使ってマージします。
について trustExitCode : カスタムマージコマンドについて、マージが成功したかどうか判断するために、マージコマンドの終了コードを使用できるかどうか指定する。これが true に設定されていない場合、マージ ターゲット ファイルのタイムスタンプがチェックされ、ファイルが更新されていればマージは成功したものとみなされます。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決策 このリポジトリでは、別の git プロセスが実行されているようです。たとえば、「git commit」によって開かれたエディタなどです。
-
fatal: リモート参照マスタが見つかりませんでした。
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
git を使用してリモートリポジトリを更新する場合、現在のブランチの先端がエラーの背後にあるため、更新が拒否されました。
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
[解決済み] git diff の出力を自分の好みの diff ツール/ビューアで表示するにはどうすればよいですか?
-
fatal: パス仕様 'readme.txt' がどのファイルにもマッチしなかった Solution
-
gitの利用(ssh鍵の作成とgithubの利用)。
-
[解決済み] .gitignoreで特定のファイルを除外する