问题标签 [difftool]

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.

0 投票
0 回答
2267 浏览

git - Git difftool - 如何忽略图像?

我是 git / osx / unix 新手,但在我目前的工作中,我正在使用它们。我经常运行“git difftool”来比较提交中的更改,但是每当它遇到图像时,我都会从 FileMerge 收到错误,我必须进行一些不必要的点击才能跳过它....有时 10 或 20任何提交的时间。

我看过但没有看到任何在差异期间忽略图像的简单方法?

0 投票
1 回答
108 浏览

tfs - 您如何更改用于比较的程序团队资源管理器?

我想让团队资源管理器使用 BeyondCompare 或 SourceGear 的 diffmerge,以便在团队资源管理器中解决我的冲突。我知道它是可能的,但是它的设置在哪里,它的语法是什么?

0 投票
1 回答
2165 浏览

git - git difftool -- 如何跳过某个文件?

当我做 a 时git difftool,我会收到消息Hit return to launch 'araxis':。我发现我可以通过按 来终止整个差异CTRL-C,但是跳过单个文件怎么样?

这可能吗?


编辑:从git 1.7.7.1(和 msysgit 1.7.7.1.msysgit.0)开始,这可能的。对于每个文件,我都会被问到

似乎peterjmag在他的回答中提到的提交被git人员接受并进入了master分支!

0 投票
3 回答
35482 浏览

git - Git 和 DiffTool 问题:LOCAL 和 REMOTE 指向什么?

我一直在努力让 tortoisemerge 作为 Git 中的 difftool 选项工作,我的 .gitconfig 文件当前显示:

根据乌龟合并文档,“我的”命令以两种方式说明哪个文件将显示在右侧。

我的问题是,GIT 提供的 LOCAL 和 REMOTE 变量实际上指向什么?该文档有点含糊,说明

LOCAL 设置为包含差异前映像内容的临时文件的名称,而远程设置为包含差异后映像内容的临时文件的名称。

当我修改文件时出现问题,然后输入'git difftool' tortoisemerge 是从左侧的工作目录文件开始的,而不是我假设的右侧。我知道我只能切换“我的”和“本地”命令,但我试图找出本地/远程指向的内容以及解决此问题的最佳方法

0 投票
2 回答
423 浏览

windows - `git difftool` 拒绝在 Emacs 劣质 shell 下运行

当我git difftool在普通的 cygwin shell 下输入时,我只会收到良性退出:

但是,当我在 Emacs 劣质 shell 下键入完全相同的内容(运行相同的 cygwin bash)时,我收到以下错误:

知道为什么会发生这种情况以及如何解决这个问题吗?

(顺便说一下,所有其他 git 命令都可以在这个 Emacs 劣质 shell 下完美运行,所以我只能假设这一定是特定于 的东西difftool

编辑(提供有关工具的变体和版本信息):

  1. cygwin-1.7.8-1
  2. G41R2F1 上 2010 年 5 月 8 日的 GNU Emacs 23.2.1 (i386-mingw-nt6.1.7600)
  3. git 版本 1.7.4
  4. Windows 7 旗舰版 64 位
0 投票
1 回答
1741 浏览

git - WinMerge 通过 git difftool 不断提示输入第二个文件

我使用@VonC 的出色说明来配置我的开发系统,以便git difftool <BRANCH1> <BRANCH1>调用 WinMerge。这是我所做的:

  1. 将以下内容放在~/.gitconfig

    [差异]

    [差异工具“winmerge”]

    [差异工具]

    /li>
  2. 创建了一个/usr/bin/winmerge.sh具有以下内容的:

    echo Launching WinMergeU.exe: $1 $2

    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"

现在,当我尝试通过 启动 WinMerge 时git difftool <BRANCH1> <BRANCH1>,我收到了似乎是正确的参数传递:

Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c

但是,出于某种奇怪的原因,WinMerge 并没有并排显示这两个文件,而是提示输入第一个文件作为右侧,而接受第二个文件作为左侧:

[WinMerge 应该显示 2 个文件而不是一个

为什么会这样?我在配置步骤中遗漏了什么?

PS 当我在命令行上键入时winmerge.sh file1.c file2.c,WinMerge 立即并排显示这两个文件,正如我所期望的那样。

更新:哦,哇,我刚刚注意到Both paths are invalidWinMerge 提示底部的消息(并更新了屏幕截图以强调这一点)。看来这些文件根本不是由 difftool 生成的,或者路径有问题。

0 投票
1 回答
3632 浏览

git - Git difftool 问题:无法创建临时文件

我将 git 与 Kaleidoscope 配置为 difftool 一起使用。几个月来一直运行良好。一两天前它也在工作。今天,当我尝试做一个“git difftool”时,突然,git报告

在 google 上搜索表明这可能是本地 git repo 中的目录权限问题。但是即使在 git repo 上递归 chown 之后,情况也没有改善。

Git-difftool 文档没有提到它可能试图在哪里创建这个临时文件。有人对如何找到这个有任何想法吗?

0 投票
1 回答
1700 浏览

git - Git:为 difftool 和 mergetool 配置模式

在 Mercurial 中,可以为外部差异和合并工具定义一种模式(以便仅对与指定模式匹配的文件调用它们):

如何在 Git 中定义这样的模式?

git-config(1) 中的 [mergetool] 部分没有提及任何模式、掩码或任何类似内容。

编辑

这是我的 .git/config 的相关部分:

现在它适用于所有文件。

我希望仅对名称以结尾的文件调用 difftool 和 mergetool.ext

编辑

我添加了一个包含以下内容的文件 .git/info/attributes:

我也加了

到我的 .git/config。

现在我跑

它调用 KDiff3 而不是我的 difftool。我做错了什么?

备注:我正在使用 difftool 而不是 mergetool,因为它更容易测试,并且我相信如果我设法配置 difftool,那么如何配置 mergetool 对我来说将是显而易见的。

编辑

Difftool 现在可以工作了。

.git/配置:

.git/info/属性:

difftool.git.sh(在 PATH 中)

但是对 Windows 有一个副作用:git diff现在会导致 APPCRASH。

编辑

我已经想出了如何避免崩溃或挂起git diff:应该使用或git difftool调用:git diffshsh -c "git diff"

0 投票
2 回答
3216 浏览

git - .gitattributes 没有区别,在使用 git difftool 时尝试跳过文件

我已经阅读了 Git Pro 网站,并且在 StackOverflow 上阅读了多个答案,但遗憾的是我根本无法让 .gitattributes 为我工作。

每当我使用git difftool时,它都会尝试显示二进制文件之间的差异,例如图像文件 (PNG)。

我在我的 .gitattributes 文件中尝试了多种组合,但是每当我运行我的git difftool命令时,它仍然会尝试比较二进制文件。

在我的存储库的文件夹中,我有:
.git
.gitattributes
[我的项目的文件子目录]

我为我的 .gitattributes 文件尝试了许多过滤器组合。例如:

*.pbxproj 二进制
*.png 二进制

或者还有:

*.pbxproj 二进制 -diff
*.png 二进制 -diff

甚至:

*.pbxproj 二进制
*.png 二进制
*.pbxproj -diff -difftool
*.png -diff -difftool

每次,我只需将我的 .gitattributes 文件添加到索引中并提交它。但是,这样做之后,当我运行 mygit difftool检查两个分支之间的差异时,会发生这种情况:

git difftool otherBranch HEAD

查看:“MyApp.xcodeproj/project.pbxproj”点击返回以启动“diffmerge”:

查看:“MyApp/Background1.png”点击返回以启动“diffmerge”:

它怎么会这样?如何最终正确设置我的 .gitattributes 文件,这样我就不必查看这些特定文件的差异?

为了进一步调查,我使用了git check-attr如下命令:
git check-attr binary MyApp/MainBackground.png

输出是MyApp/MainBackground.png: binary: set......我想知道为什么 git difftool 仍然强迫我查看差异!

0 投票
2 回答
39999 浏览

git - 为什么“git difftool”不直接打开工具?

git是这样配置的:

当我运行时:

我收到以下消息:

然后,如果我按Entermeld将启动。

如何禁用此消息,以便meld在键入后立即启动git difftool