我有一个包含 svn 统一差异的字符串。我的 PyGTK 应用程序需要向用户显示这个差异,我想像其他差异工具一样渲染它,或者至少让它着色。
你有什么建议吗,外部工具,库,自定义实现......?我在看http://kafka.fr.free.fr/diff2html/但我更喜欢使用一些库或类似的东西,所以用户不需要安装第三方应用程序。
我想稍后也将它用于 git 和 mercurial 差异。
我有一个包含 svn 统一差异的字符串。我的 PyGTK 应用程序需要向用户显示这个差异,我想像其他差异工具一样渲染它,或者至少让它着色。
你有什么建议吗,外部工具,库,自定义实现......?我在看http://kafka.fr.free.fr/diff2html/但我更喜欢使用一些库或类似的东西,所以用户不需要安装第三方应用程序。
我想稍后也将它用于 git 和 mercurial 差异。
您可以使用difflib生成差异,使用pygtkscintilla进行语法高亮、行编号、代码折叠等。
如果您只想要语法高亮(与 pygtkscintilla 提供的所有编辑器功能相反),那么您也可以查看pygments。
该类difflib.HtmlDiff
提供了执行此操作的设施。但是,不是从一个统一的差异文件开始,而是HtmlDiff
希望您传递完整的“之前”和“之后”文件。这些文件很容易通过 svn/git/mercurial 命令获得,而无需使用这些 VCS 的“差异”功能。
GtkSourceView 是 pygtk 的 TextView 的替代品,它可以语法突出显示差异文件,包括统一差异。