我的任务是创建一个简单的基于 Python Web 的应用程序,以图形方式表示各种服务器之间的“差异”,就整个文件系统中各种关键配置文件的内容而言。
1. 高级热图
对于高级概述,我正在考虑创建每个系统的热图(例如http://www.jjguy.com/heatmap/)。每个系统都与一个黄金源图像(原始图像)进行比较,然后我们使用颜色来表示与该图像的差异程度。
文件系统映射到 xy 轴,因此每个系统的热图上的相同坐标代表相同的文件。
我的第一个问题是,您对将文件系统映射到 xy 坐标的好算法有什么建议吗?请记住,虽然每个服务器应该具有或多或少相同的文件系统层次结构,但这可能不一定正确,我仍然需要找到一种方法来表示丢失的文件/目录,或者可能是添加的文件/目录。我不确定这是否可能,以及将等效文件/目录映射到每个系统地图上匹配(或至少相似)xy 点的第一个要求。这里有什么新颖的方法/算法吗?
然后我需要一种方法来量化每个文件之间的变化程度(行数?),然后将其传递到热图上。请记住,我需要区分具有 10 行更改的单个文件和每个具有 1 行更改的 10 个文件,因为两者都有不同的分支。
2. 向下钻取以显示文件差异
我希望还能够在 webapp 中提供深入到单个文件/目录的能力,并查看它们之间的变化。
我一直在将 Kdiff3 和 Meld 组合用于可视代码差异,Meld 显示的变化方式给我留下了深刻的印象。
http://meld.sourceforge.net/meld_file1.png
我似乎找不到任何独立的网络库,它们自己提供视觉差异机制。我找到的最接近的是 jsdifflib ( http://snowtide.com/jsdifflib ),但它似乎与 Meld 之类的功能(或美学,我想)不匹配。这里有什么建议吗?
(修正主义者实际上看起来很酷 - http://benfry.com/revisionist/ - 但我似乎找不到任何公共代码)。
干杯,维克多