热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

winmerge多个文件夹生成html,在Git中使用Winmerge来文件di

2015年6月更新,6年后:详见"gitmergetoolwinmerge"&#

2015年6月更新,6年后:

详见" git mergetool winmerge",一个简单的WinMerge-diff就足够了。

Git 2.5+(2015年第2季度)现在已经将Winmerge视为差异或合并工具!

原答案(2009-2012)

(msysgit,1.6.5,DOS会话)

第一部分(使用winmerge)在&#34中描述;如何使用visual diff程序查看'git diff'输出?"

C:\myGitRepo>git config --replace --global diff.tool winmerge

C:\myGitRepo>git config --replace --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""

C:\myGitRepo>git config --replace --global difftool.prompt false

WinMerge-diff存储在difftool的目录部分中:

#!/bin/sh

echo Launching WinMergeU.exe: $1 $2

"$PROGRAMFILES/WinMerge/WinMergeU.exe" -e -u -dl "Local" -dr "Remote" "$1" "$2"

(请参阅WinMerge命令行选项)

git difftool

现在将启动WinMerge。

如果您想要WinMerge-diff启动WinMerge,只需设置:

set GIT_EXTERNAL_DIFF=winmerge.sh

但真正的附加价值来自于使用相同的差异工具在一个批次中呈现所有差异而不是按顺序呈现它们的能力,迫使您一次关闭一个文件的差异工具窗口。

2012年6月更新(2年半后):

将很快比较目录而不是逐个文件:

见[ANNOUNCE] Git 1.7.11.rc1:

"WinMerge-diff" 学到了#34; difftool" 生成外部差异工具的选项,可以在填充两个临时目录后一次比较两个目录层次结构,而不是每个文件对运行一次外部工具实例。

请参阅"补丁WinMerge-diff:教授difftool以处理目录差异",以及答案" Git分支的目录比较" 更多细节。

目录脚本的原始difftool(2009年12月)

正如Seba Illingworth在他的回答中提到的,脚本git-diffall.sh(也放在路径中)可以做到这一点:

#!/bin/sh

git diff --name-only "$@" | while read filename; do

git difftool "$@" --no-prompt "$filename" &

done

但这只适用于为n个文件打开n个窗口(如果你尝试使用WinMerge的WinMerge-diff选项,它将无法工作,因为过早地被difftool删除了临时文件)

这就是为什么我喜欢GitDiff.bat的方法 - 使用GI进行功率差异,这允许您在选择一个文件以查看其内部差异之前查看具有差异的文件列表。

我已经调整它只使用DOS命令

@echo off

setlocal

if "%1" == "-?" (

echo GitDiff - enables diffing of file lists, instead of having to serially

echo diff files without being able to go back to a previous file.

echo Command-line options are passed through to git diff.

echo If GIT_FOLDER_DIFF is set, it is used to diff the file lists. Default is windff.

goto END

)

if "%GIT_DIFF_COPY_FILES%"=="" (

rd /s /q %TEMP%\GitDiff

mkdir %TEMP%\GitDiff

mkdir %TEMP%\GitDiff\old

mkdir %TEMP%\GitDiff\new

REM This batch file will be called by git diff. This env var indicates whether it is

REM being called directly, or inside git diff

set GIT_DIFF_COPY_FILES=1

set GIT_DIFF_OLD_FILES=%TEMP%\GitDiff\old

set GIT_DIFF_NEW_FILES=%TEMP%\GitDiff\new

set GIT_EXTERNAL_DIFF=%~dp0\GitDiff.bat

echo Please wait and press q when you see "(END)" printed in reverse color...

call git diff %*

if defined GIT_FOLDER_DIFF (

REM This command using GIT_FOLDER_DIFF just does not work for some reason.

%GIT_FOLDER_DIFF% %TEMP%\GitDiff\old %TEMP%\GitDiff\new

goto END

)

if exist "%ProgramFiles%\Beyond Compare 2\BC2.exe" (

set GIT_FOLDER_DIFF="%ProgramFiles%\Beyond Compare 2\BC2.exe"

"%ProgramFiles%\Beyond Compare 2\BC2.exe" %TEMP%\GitDiff\old %TEMP%\GitDiff\new

goto END

)

"%ProgramFiles(x86)%\WinMerge\WinMergeU.exe" -r -e -dl "Local" -dr "Remote" %TEMP%\GitDiff\old %TEMP%\GitDiff\new

goto END

)

REM diff is called by git with 7 parameters:

REM path old-file old-hex old-mode new-file new-hex new-mode

copy %TEMP%\%~nx2 %GIT_DIFF_OLD_FILES%\%1

copy %5 %GIT_DIFF_NEW_FILES%

:END

它不够强大,无法处理不同目录中具有相同名称的文件,但它可以让您大致了解可能的内容:

这里只打开一个WinMerge,文件列表有内部差异。 您可以单击要检查的那些,然后一个简单的ESC将关闭所有WinMerge-diff会话。



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 标题: ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
客户服务部小谢娟_387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有