为四川人民祈祷! www.onefoundation.cn

如果merge是一个运算符

那么merge应该是一个三目运算符
换种说法,如果merge是一个函数,那么它需要的参数应当是三个

致命的是,我一直以为参数是两个……幸好在搞清楚这一个问题之前,投入太多时间

不久以前尝试自己写一个merge算法的时候,需求很简单。我有文件A和文件B,想找出他们的相似之处并且合并成一个文件,前提是他们都文本文件。听起来有些不可思议,有点人工智能的味道了,可是svn就是这么做的
于是开始尝试,花了一个晚上,效果非常不好……搁置。这种小的算法很有意思,现在却变得很头痛

之后我开始在论坛上提问,关于merge对算法。有人提到了bzr!我怎么没想到呢?!

又过了好久,昨晚我才忽然想起来这事,bzr down下来以后,在\Python25\Lib\site-packages\bzrlib下面找到了关键的文件 merge3.py,让我很惊奇它的调用方法需要三个参数。一时间无法理解,思维惯性

直到今天才开窍了,够笨的。merge算法跟什么智能完全不搭界,它就是两个diff。所以参与的文件必须是三个而不是两个,文件A和B是由base文件被的修改而产生冲突,我们需要做的是将文件A和B与base文件做一个diff
道理就是这么简单,可苦了我了
 
by kernel1983
Comments »
Leave a Comment:
code:831