2007年12月25日 星期二 10:14
hi all 前段时间在此问过有没有比较好的diff和patch解决方案.当时几位热心同学给的方案大致以下两种: 1. 使用difflib 2. 使用unix系的diff和patch应用程序(有windows版本). 经实验, difflib 的ndiff和restore可以提供diff结果和还原的操作, 但diff结果将包含两段比较文本全部内容, 不是我希望的只包含差异结果. difflib 的unified_diff可以比较出完善的统一diff格式的结果, 仅有差异部分, 符合我的要求. 但difflib中没有提供一个函数可以还原这种比较结果. 因此我试图找到可以还原统一diff格式结果的方案, 其中尝试采用unix系的patch应用程序, 可以成功但局限性比较大(当然也可能是我方法有问题). 我使用patch的时候是采用文件系统过渡的方式, 起单独进程对临时文件做patch后再获取patch结果. 这种操作方式当我把turbogears做成windows服务时就失败了. 因此继续查找是否有用python代码实现的patch, 后来一位叫Michael Head的同学告知我有个conary's patch library, 地址http://cvs.rpath.com/conary-docs/conary.lib.patch-module.html 完全满足要求, 于是将起check出来, 在import等一些小地方做了一些改动.使之全部使用标准库. 放到我的工程中运行良好. 我使用的patch代码地址: http://cudoc.googlecode.com/svn/trunk/OnlineAPIDoc/onlineapidoc/patch.py -- with kind regards
2007年12月25日 星期二 10:21
diff有参数可以生成ed命令。 On Dec 24, 2007 9:14 PM, RO <rosettas在gmail.com> wrote: > hi all > > 前段时间在此问过有没有比较好的diff和patch解决方案.当时几位热心同学给的方案大致以下两种: > 1. 使用difflib > 2. 使用unix系的diff和patch应用程序(有windows版本). > > 经实验, difflib 的ndiff和restore可以提供diff结果和还原的操作, 但diff结果将包含两段比较文本全部内容, > 不是我希望的只包含差异结果. > > difflib 的unified_diff可以比较出完善的统一diff格式的结果, 仅有差异部分, 符合我的要求. > 但difflib中没有提供一个函数可以还原这种比较结果. > > 因此我试图找到可以还原统一diff格式结果的方案, 其中尝试采用unix系的patch应用程序, > 可以成功但局限性比较大(当然也可能是我方法有问题). 我使用patch的时候是采用文件系统过渡的方式, > 起单独进程对临时文件做patch后再获取patch结果. 这种操作方式当我把turbogears做成windows服务时就失败了. > > 因此继续查找是否有用python代码实现的patch, 后来一位叫Michael Head的同学告知我有个conary's patch library, > 地址http://cvs.rpath.com/conary-docs/conary.lib.patch-module.html > 完全满足要求, 于是将起check出来, 在import等一些小地方做了一些改动.使之全部使用标准库. 放到我的工程中运行良好. > > 我使用的patch代码地址: http://cudoc.googlecode.com/svn/trunk/OnlineAPIDoc/onlineapidoc/patch.py > > -- > with kind regards > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2007年12月25日 星期二 10:27
On 12/25/07, shhgs <shhgs.efhilt在gmail.com> wrote: > diff有参数可以生成ed命令。 用diff应用程序? 我觉得这个方案不好 -- with kind regards
2007年12月25日 星期二 10:37
感觉freebsd下面的bsdiff是最强大的(是二进制比较,咔咔),有对应的py程序(把c语言程序包装成dll调用也不错),很好用:) 曾经在此基础上面写过两个文件夹的二进制比较,生成比较的结果列表。再通过对应的patch还原 2007/12/25, RO <rosettas at gmail.com>: > > On 12/25/07, shhgs <shhgs.efhilt at gmail.com> wrote: > > diff有参数可以生成ed命令。 > > 用diff应用程序? 我觉得这个方案不好 > > -- > with kind regards > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- wayne -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20071225/4571cd0c/attachment.html
Zeuux © 2024
京ICP备05028076号