美文网首页
(原创)《信条》看不懂?不过是一堆git操作的合集

(原创)《信条》看不懂?不过是一堆git操作的合集

作者: mona_alwyn | 来源:发表于2020-09-12 20:26 被阅读0次

在我国抗疫工作取得阶段性胜利之后,电影院终于在7月下旬有序开放营业,然后就是一大波影片扎堆上映。今天呢mona也是按耐不住地带着alwyn去看了一场电影——《信条》,只不过从 影院出来的时候,mona居然喊着有些没整明白,侠义仁心古道热肠灵敏机智的alwyn怎么能忍,于是写下此博文强行解释一番。

高能提示:本文高度剧透,假设你还没看过这部电影的话,强烈建议点击关闭页面,离开此处

设定

其实电影里的设定目前真实世界当然不存在,要不然爱因斯坦、牛顿、爱迪生的棺材板就真的是摁不住了,但看电影嘛,就要接受它的设定,那么这部电影里的最大设定是什么呢?
那就是——多个时间线并存(Multiple Timeline),这是与真实世界单一时间线的最大不同,也是造成困惑的根源。

Architecture diagram.png
其实整个的时间线设定同git操作很类似,就像上面的架构图展示的一样,简单的来说:
  • 首先,有一个主时间线(master timeline),这是毫无疑问的,git默认有一个master branch
  • 其次,由于旋转门的存在,电影世界支持时间回溯,正如git revert,而且两者同时都是可追溯的,只不过git是单一时间线,使得git revert的追溯形式只是叠加操作,而电影时间里旋转门的回到过去更为复杂,它开启了并存的分支,这点下面很快讲到。
  • 再次,电影世界里的时间线不会被覆盖,所以回到过去后,原有的东西依旧存在,正如台词说的past is past(差不多这意思吧),那么传回去的人物故事只能以duplicate timeline(重复/冗余时间线)的形式存在,正如gitdevelop branchmaster branch同时存在一样;而且如同两个分支会存在conflict一样,duplicate timelinemaster timeline的人物是不能直接相见 的,不过,呵呵。
  • 然后呢,存在一个不可更改的客观规律The Law of Nature,就是master timeline的时间方向为正向,这就导致了 revert timeline在真正展示的时候,实际上是以逆向的反转处理过程(reversed revert process)的形式出现,就像电影里从未来射出的子弹,因为在 revert timeline中,当前这个点是未来的将来,所以在master timeline上从当前走向未来的时候,在revert timeline上就是从将来走向过去,从子弹打出弹孔回到子弹上膛。这部分概念在git里当然没有,不过可以把reversed revert process视为test branch
    但是,隐含的危机就是,当revert操作记录过多的时候(或许达到所有时间线记录的51%),就可能会引发世界的重构,比如时间轴方向永久逆转。
  • 还有就是里面有个手机的功能,就是台词中提到的record,打个电话报个记录,就相当于git commit,在时间轴中的这个锚点,就相当于git commit id,要不然我咋知道要回溯到哪个时间点,最后男主就是靠这个救了女主的命。
  • 最后还有一个隐藏的点,就是所有的并行时间线总会有个默认merge操作,至于是怎么merge的,只能自己想想咯。

单一时间线的视角

其实说完这个Multiple TimeLine的设定,估计看的时候是还是会有人懵圈,那是因为电影中有时候是穿插着单一时间线的镜头——从“master timeline”进到 “revert timeline”再进到 “duplicate timeline” 最后回到“master timeline”:
1)男主第一次进旋转门
这一段只有从“master timeline”进到 “revert timeline”
master男主在车上拿到那个xx241之后,在高速行驶中被revert反派要挟交出东西,期间有一辆事故车恢复正常,交出箱子后救下master女主,然后是master女主被反向子弹击中,master男主为了救人决定进旋转门,因而进入revert timeline成为了revert男主,然后开车出去追击master反派。期间反派一直在打电话给自己疯狂操作git commit -a -m "xxx"而那头又在不断的查看git log。最后revert男主翻车(就是master男主眼中的那辆事故车),还差点汽车爆炸冻死。
2)男主自己跟自己搏斗
这一段只有从“revert timeline”再进到 “duplicate timeline”
起点是“revert男主”趁着机场爆炸冲进密室,然后跟master男主一顿干架,终于进入了旋转门,化身duplicate男主master尼尔追然后被放跑
3)尼尔二次旋转拯救男主
这一段有非常复杂的分支跳转
最后决战的时候,有一半的人是revert组包括尼尔和男主小分队revert尼尔看到地下入口有炸弹后想阻止revert男主小分队,但没成功,只好跑进战场中的旋转门,化身revert revert 尼尔,然后开车去追revert男主小分队,但依然没有成功,然后往回跑还碰上revert男主开始进攻开枪攻击车子(这地方记不清了,如果没记错的话就是个BUG,因为revert男主小分队已经入坑了,也有可能其实是revert revert revert 尼尔了),然后不知道 怎么就提前入了坑躺在门口(不知道这个是revert n尼尔了),最后终于成功的用车子把 revert男主小分队拖了出来。
为啥这里要一顿 revert操作呢,因为master线里头男主还在歌剧院干活呢

多重时间线的视角

1)最典型的还是男主互搏这一段
最开始从master男主视角看的,两个门同时出人,一个跟自己搏斗,一个被master尼尔追。
这个地方就是按照大自然的时间方向,把masterrevetduplicate三条时间线的内容同时播放出来的效果
2)女主看到自己跳海
这一段就是revert女主看到master女主带儿子坐船回来,然后干了点小事,接着跳海,被master女主看见,以为是反派跳海自己自杀了

BUG

整部电影看下来,不可避免地发现了bug,我认为最大的bug有三处:

Bug 1 男主车祸后怎么回到机场爆炸现场,机场爆炸在车祸爆炸的一周前

revert男主车祸之后差点被汽车爆炸冻死,然后就一直呆在船上的集装箱里了,那么他是怎么回到一周前的机场爆炸现场呢?
如果要合理解释的话,那就只能说在revert男主差点爆炸冻死被救后一直昏迷,revert尼尔为了救他,又带他和带伤的女主进了一次旋转门回到了更早的时间点,走进了一个revert again timeline,总不能说他们呆的是一艘能够穿梭时光的集装箱吧,这一点完全没有交待,其实是有点经不起推敲的。

Bug 2 为啥能原地revert

就说revert男主master男主一顿肉搏之后跳进旋转门,转身就从旁边的门出来被master尼尔追,这是什么操作?更大的问题是他出来后,还能跟外面的revert尼尔revert女主连接上,没有一丝丝的时间错位。

Bug 3 masterduplicate到底能不能碰面

电影里多次强调,同一个人物的masterduplicate不能碰面相见,但是:

  • 不同分支上的不同人物却可以进行正常 交互
  • 在机场里master男主revert男主那一段激烈肉搏居然完全没事
    只能说毕竟诺兰不是码农,根本不了解这么一段复杂的git操作之后,究竟会引出多么复杂的conflct,唉。

Bug 4 尼尔是啥时候躺在那个门里头了

这一点我看的时候就很困惑了,他能躺进去但不直接阻止,可以理解为麻痹反派boss,但既然如此,为何小分队不直接是三人组呢?
其实关于这个bug,原本我想吐槽的是在其他点上,不过在写上上面那一段疯狂revert操作的时候,我的思路完全被绕没了,只能说期间内部的conflict太多了,最终一招git rebase + git merge -force强行抹平了 。

毕竟 ,真实世界里还没有出现并行的时间轴,现实没有如果,生活还是要继续。

真的,原本下午看完电影的时候我还感觉自己看懂了,现在花了2个小时写完这片博客之后,我感觉把自己绕的有点懵,因为感觉bug有点多。

相关文章

网友评论

      本文标题:(原创)《信条》看不懂?不过是一堆git操作的合集

      本文链接:https://www.haomeiwen.com/subject/hlnwektx.html