我想快速概述一下我的存储库中的本地更改,但我不希望显示已删除文件的差异,因为每一行都是减号.
基本上,我想要类似的东西'git diff HEAD <list of modified files only>'.在理想的世界中,它将在删除和添加的文件列表之前,但不显示其中的差异.
通过编写实用程序来实现此目的,我大部分都是这样做的:
git diff HEAD `git status | grep modified | cut -d : -f 2`
当我想知道是否有一些git-y方式来代替它.有没有我失踪的旗帜?我也喜欢保留颜色输出.
是否有可能只复制两个文件的差异?就像在winmerge,但是,我找不到这个选项
就像在这个屏幕上 - 我只想复制'黄色部分'.当然我可以手动完成,但在大文件中它不是太有趣:-)
我们目前使用的是Beyond Compare 3.0,我对它非常满意.但是,如果我可以轻松地为特定的一次性案例指定排除,那将是很好的.当我对某些重构进行代码审查时,这是必需的.例如:
旧代码
doSomething(ConstantsInterface.FOOBAR);
新代码:
doSomething(BetterEnumeration.FOOBAR);
在这种情况下,我有几百个我正在审查的更改基本上都是完全相同的更改,我只想查看例外情况.如果我可以轻松指定一个表明这两种情况相同的异常,那就太好了.我知道在语法中这样做的方法,但是在有十个左右的例外的情况下,这是繁琐和繁琐的.
还有其他提示吗?
一个 shell 脚本,显示两个不同目录中多个文件的差异,还可能创建一个输出文件,包括发现所有不匹配的位置。
健康)状况
文件 dir1/file1 仅与 dir2/file1 比较(其他文件类似 - file2 与 file2 比较)
如果发现任何更改:状态应为“例如,在文件 file1 中发现未匹配”,并且对所有其他文件也应执行相同的操作,并将所有结果写入一个文件中
提前致谢
我一直在看Paul Heckel 的 Diff 算法,但我似乎没有完全理解它。
我复制了 Python 代码中所示的步骤 1-5,但我无法使用算法的最后一步来显示差异。如果有人解释了最后一步以及 Python 代码,我将不胜感激。
另外,我不完全理解为什么您需要参考第 4 步和第 5 步中的表格行,因此对此的解释也太棒了!
非常感谢
这是我当前的代码:
def find_diff(current_file_as_list, different_file_as_list):
N = current_file_as_list
O = different_file_as_list
table = {}
OA = []
NA = []
for i in O:
    OA.append(i)
for i in N:
    NA.append(i)
# First pass
i = 0
for line in N:
    if not line in table:
        table[line] = {}
        table[line]["NC"] = 1
    else:
        if table[line]["NC"] == 1:
            table[line]["NC"] = 2
        else:
            table[line]["NC"] = …我在Windows 7上使用Git的Source tree客户端。我已经使用了tortoisehg客户端进行比较,并且在SourceTree中也使用Beyond比较自身作为diff。我在工具->选项中将diff工具设置为无法比较,但不确定如何通过任何文件的源树启动diff。双击文件通常会显示差异视图。右键单击->自定义操作也不会执行任何操作。
比较3.3.13和源树2.1.2.5
请让我知道如何配置。
我正在尝试编写一个具有一些自主组件的项目.其中之一是需要区分两个文件夹并将不同的文件吐出到一个字符串数组中.Dircmp做了一部分 - 它吐出了不同的文件.但是,当与不同文件夹中的同一文件进行比较时,它似乎实际上并没有进入剩余的文件以查看哪些是不同的.
目前我已经使用了difflib和filecmp,除非我做了一些完全错误的事情,否则我无法找到一种方法来实现我正在寻找的东西,而无需从头开始编写.我需要这个的原因是因为这个python脚本将部署在windows boxen上,标准的linux diff工具将无法使用.
我唯一的另一个想法就是从命令行调用diff等,但这并不能解决我的任何问题(在数组中获取文件而不需要GNU工具).
谁能帮我?我仍然在python中完全磨砂,非常感谢专家的建议.谢谢!