是否有VCS和文件版本的正式CS定义?


12

我不知道这是不是在开玩笑,但是一旦我阅读了git,hg或svn等版本控制系统中所谓的文件正式定义,就可以了。这就像是一个同胚的数学对象。这是在开玩笑吗,或者真的有关于版本控制系统和VCS数学的计算机科学理论吗?


2
我将同构更改为同构,但是我不知道在这种情况下在哪里搜索拓扑。你是说同态吗?
frafl 2013年

3
诸如en.wikibooks.org/wiki/Understanding_Darcs/Patch_theoryprojects.haskell.org/camp之类的东西?在理论和编程方面寻找haskell总是一个好主意。我可以将其转化为答案,但是我认为有些人对此领域有更好的了解。
frafl 2013年


如果没有对您正在做的事情进行正式的规范化,您就不会构建像版本系统那样复杂和关键的东西。骇客的人有时可能是天才,但通常他们都是傻瓜。
2015年

Answers:


11

您正在考虑Isaac Wolkerstorfer(@agnoster)的推文

一旦您掌握了分支是映射Hilbert空间子流形的同胚内爆函数的基本概念,git就会变得更加容易。

不幸的是,这是个玩笑。正如作者在Quora上写道

它的意图是坚定地嘲弄自己。我实际上很喜欢git,我认为它的复杂性被大大夸大了。同时,我很同情git专家向新手提供的建议听起来像是难以理解的胡言乱语。

它无意具有更深层的含义。尝试以这种方式进行分析应该是徒劳的,但是由于现实中存在一个错误,如果您尝试足够的话,实际上可以使任何手动编写的语句都适合。

这已经在程序员堆栈交换数学堆栈交换中讨论过。


除了玩笑,还有形式化版本控制的工作。与理论和实践结盟的一项努力是David RoundyDarcs的补丁理论研究。该理论的主要目的是为合并建模,尤其是解决冲突。该的darcs维基具有介绍了理论和几个三分球,以及一个参考书目(没有维护,如果你想关于这个问题的最新看法,但它确实列表中的那么过时由切赫博迪2009年的调查纸)和列表会谈(其中包括最新资料)。还有一本Wikibook。一篇开创性的论文是《版本控制的原则方法》作者:安德烈斯·洛(AndresLöh),伍特·斯威斯特(Wouter Swierstra)和达安·莱恩(Daan Leijen)

补丁理论确实导致了分类模型,最近在Samuel Mimram和Cinzia Di Giusto 的《补丁分类理论》Carlo Angiuli,Ed Morehouse,Daniel R. Licata和Robert Harper的同位补丁理论中进行了探索。在Mimram和Di Giusto的工作中,该模型将文件作为对象,将小块作为态射。我认为这使得合并分支成为一个函子-如果您在单个存储库中工作,则是endofunctor。“同胚的终结者”对我来说没有意义。涉及同伦理论,希尔伯特空间的子流形可能不会那么遥远...


3

当然,版本控制系统存在数学形式主义。实际上,CS中的每种算法都有数学上的形式主义。许多人有多种形式主义。形式主义和它们建模的系统之间没有1-1的关系。模型的范围可以从简单到复杂。这也是Swierstra 制作的VCS / SCM的示例,尚未引用。

SCM也有很多相似之处,以概念“平行宇宙/时间表”时间旅行有时在科幻小说中。它捕获在不同时间或“快照”中不断发展的系统的状态。有“分支”和“合并”。另请参阅时间表

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.