【滑稽】用 blog 实现版本控制

发布时间:2020-06-30 23:56:30 作者:琉年
来源:网络 阅读:717

  (实现方法和scheme中的链表思想几乎完全相同——不过版本控制本身就是一堆指针,参考 链接:git教程 - 廖雪峰的官方网站)


  博客提供两个接口:


  博客常常可以修改。但是这个功能有副作用:修改之后,历史版本就消失了——所以最终没有用到这个特性。接下来是实现:


def  创建一个project:

    新建一个具体实现的blog

    新建一个写上项目相关信息的blog                 #需求的改动按理较少

    用实现blog的网址评论项目相关信息的blog,并注明这是用于实现的东西


def 更新实现:

    新建一个实现的blog(复制原有代码,修改)

    把项目相关信息blog下的实现地址删了,加上新的实现地址


def 回退:

    把项目相关信息blog下的实现地址删了,加上要退到的版本的地址


def 提交分支:

    做一个实现blog

    在项目相关信息blog下追加评论新的地址


def 查看历史版本:

    打开博客列表


def 合并修改:

    exit("不好意思,不可以合并修改!")


完工!!

  非常简洁漂亮的实现。但是这个实现也带来了一些问题:



  对于单文件问题,其实blog很容易就可以支持多个文件。只需要额外创建多个blog,分别写各个文件,然后在实现的blog里写下“本工程包括文件:xxx,xx,xxxx……”即可(当然,要注明对应blog的地址)。如果新的版本改动了其中一个文件,那么新的实现blog只需在已有基础上修改其中一个文件的指向即可。


  对于冗余的问题,可以通过引用来解决。比如删除前3行代码,新的文件中只需要写“在xxx的基础上删除前三行”。假如有多个这样的描述,那么把它们连在一起就是整合修改(冲突是可以检查的)——当然这需要一种规范化的语言,来使得可视化变为可能(借助php等手段翻译),否则并无法直观地看到修改后的真实代码。————说到这里,你肯定会说,这不就是git吗?————固然是极其相似的,但这时并非是由git检查来确定修改,而是由编写者来决定哪些地方作了修改,或者要求编写者总结何处作了修改,或者直接使用新的代码。这应当会使得代码更易理解,并且一定程度上可以标记出代码的局部回滚(假如只有一个文件需要使用之前的版本)


  完工了吗?也许,毕竟即使翻译需要论坛的支持,我也没能具体给出某个修改语法。局部回滚也显得很勉强,似乎还缺少一个目录结构(不过和unix目录亦文件的哲学非常相似),而且反复引用会使得求值缓慢(这个可以在实现的时候使用缓存,blog不可修改,以后的改动不会有副作用——函数式编程);python的最小单位往往是行,但某些语言的最小单位是类,这时候的修改需要一种新的(可能是递归的的)标记方式,或者混用多种标记方式;项目信息的描述也可能改变,也需要使用地址……总之,总之……这些都太像开玩笑了。


(2018-6-5 于地球)



推荐阅读:
  1. 用shell实现一个正方形
  2. Django有什么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

随笔 一派胡言 黑科技

上一篇:62数据库7_SQLAlchemy复杂查询

下一篇:activiti认识以及数据库和插件配置

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》