Subversion Delta Editor - Beautiful Code Chapter 2
本文论述的核心是讨论 svn delta editor 接口的美。
背景:通过两文件的仓库 /A/fish/tuna/FILE, /B/ 的图表描述版本控制,树的变型。 过渡:tree diff 该如何表达呢?开始讨论挑战在哪里。 正篇:概念介绍,贴出源码,就上面的例子给出源码实际执行的序列,带来的好处。 结论:好处的综述:简化开发,快速适配新功能。
svn_delta_editor_t
这个 struct 中定义了关于表达 tree diff 的核心操作接口,主要在于把树的深度优先遍历和apply_textdelta
分拆出来。- 有趣的是,文中提到了一个废弃的老接口,它视图解决 X 问题,后来的开发者们尝试用它来解决 Y 问题但是并不太顺利,所以就变成了一个废弃的接口。尽管如此,原来的设计依然很漂亮,只是,不太 fit 新出现的问题。