WinMerge difftool 仅在 AppData 临时文件中进行更改,而不在真实文件中进行更改
WinMerge difftool makes changes only in AppData temporary files but not in the real files
我将 WinMerge 与 git 集成为 difftool 和 mergetool。
问题是当我 运行: git difftool SomeBranch..HEAD
我打开 WinMerge 正确显示左侧和右侧窗格,但在解决差异后,我保存并退出但文件不受影响。
我注意到,当 WinMerge 打开时,我确实看到我的所有差异都是针对 AppData 中的临时文件完成的。这是上部差异窗格的样子(注意文件夹路径左侧和右侧都是 AppData):
我无法让 WinMerge 真正正确地打开 difftool 并让我 change/resolve 我的 diffs 并真正将更改保存到真实文件中 - 任何解决此问题的线索?
注意:当"mergetool"时不会出现此问题(仅在 difftool 中)
注意: 当对我的当前目录中的更改进行比较时,像这样:git difftool - 问题没有发生(Winmerge 在右窗格中显示真实文件而不是一个临时文件)
这是我的 .gitconfig 文件设置:
[mergetool]
prompt = false
keepBackup = false
keepTemporaries = false
[merge]
tool = winmerge
[mergetool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE
[diff]
tool = winmerge
[difftool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
其他详情:
WinMerge 版本:2.16.6.0
OS: Windows 10
Git版本:2.24.1.windows.2
只有将提交与工作树文件进行比较,才能在工作树中编辑文件。当你 运行
git difftool SomeBranch
您将 SomeBranch
上的文件与工作树进行比较,然后您可以编辑工作树文件。
但是当你运行
git difftool SomeBranch..HEAD
你比较了两个提交。 git difftool
将它们视为与工作树无关,因此正如您所观察到的,您的所有编辑最终都在临时文件中。
我将 WinMerge 与 git 集成为 difftool 和 mergetool。
问题是当我 运行: git difftool SomeBranch..HEAD
我打开 WinMerge 正确显示左侧和右侧窗格,但在解决差异后,我保存并退出但文件不受影响。
我注意到,当 WinMerge 打开时,我确实看到我的所有差异都是针对 AppData 中的临时文件完成的。这是上部差异窗格的样子(注意文件夹路径左侧和右侧都是 AppData):
我无法让 WinMerge 真正正确地打开 difftool 并让我 change/resolve 我的 diffs 并真正将更改保存到真实文件中 - 任何解决此问题的线索?
注意:当"mergetool"时不会出现此问题(仅在 difftool 中)
注意: 当对我的当前目录中的更改进行比较时,像这样:git difftool - 问题没有发生(Winmerge 在右窗格中显示真实文件而不是一个临时文件)
这是我的 .gitconfig 文件设置:
[mergetool]
prompt = false
keepBackup = false
keepTemporaries = false
[merge]
tool = winmerge
[mergetool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE
[diff]
tool = winmerge
[difftool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
其他详情:
WinMerge 版本:2.16.6.0
OS: Windows 10
Git版本:2.24.1.windows.2
只有将提交与工作树文件进行比较,才能在工作树中编辑文件。当你 运行
git difftool SomeBranch
您将 SomeBranch
上的文件与工作树进行比较,然后您可以编辑工作树文件。
但是当你运行
git difftool SomeBranch..HEAD
你比较了两个提交。 git difftool
将它们视为与工作树无关,因此正如您所观察到的,您的所有编辑最终都在临时文件中。