Git版本管理基本原理
上文已经研究分析了SVN增量式版本管理的基本原理,今天再进一步研究分析下Git快照式存储的基本原理: 一、快照存储基本原理 Git 的快照式数据存储模型是其高效、可靠的核心所在。这个模型与传统的差异存储模型(如 SVN)有显著不同。以下是对 Git 快照式数据存储模型的详细解释: 基本概念 提交(Commit): 每次提交在 Git 中都是一个独立的快照,记录...
上文已经研究分析了SVN增量式版本管理的基本原理,今天再进一步研究分析下Git快照式存储的基本原理: 一、快照存储基本原理 Git 的快照式数据存储模型是其高效、可靠的核心所在。这个模型与传统的差异存储模型(如 SVN)有显著不同。以下是对 Git 快照式数据存储模型的详细解释: 基本概念 提交(Commit): 每次提交在 Git 中都是一个独立的快照,记录...
之前在做svn和git差异分析的时候提到二者的数据存储模型有差异,svn增量(差异)存储,git快照存储。为了进一步搞清这里的差异,我分别对svn和git的存储原理进行了学习和梳理,总结如下: SVN差异存储的基本原理 SVN(Subversion)采用的是差异存储模型,即每次提交时,只记录相对于上一次提交的差异(增量),而不是整个项目文件的快照。以下是 SVN 差异存储的详细解释: 基本...
最近在调研学习Git管理和分支模型相关内容,外延到了SVN和Git差异、工作原理等相关细节,学习整理如下。 SVN(Subversion)与 Git 的最大不同,主要包括以下几个方面: 架构 集中式 vs 分布式: SVN(集中式版本控制系统): 所有版本历史和仓库数据都存储在中央服务器上,客户端只存储工作副本的快照。 ...
最新工作很忙,需要做一个整体项目和版本排期的大表。幸亏之前学了一点Python,尝试用Python处理数学,生成所需要表格。主要用到了pandas、xlsxwriter等工具包。代码并不具备什么通用性,可能写的也很啰嗦,不过好在也算用Python为自己做了一项实用的工作。下面代码中,一些工作信息隐去了。 from datetime import datetime import ope...
很久没有更新博客了,有年底很忙的原因,也有在学习用Python瞎鼓捣点什么的因素,其实我并没有停止学习。 学了一段时间Python,本身有开发基础,总想着用Python鼓捣点什么我自己用的上的东西,所以从去年11月开始,就开始学习研究Python GUI编程,现在每天学学写写,走走停停,也算有所积累吧。 当然,还没什么见的人的成果,不过也可以考虑把阶段性代码更新上来,权当记录和一乐了。 ...
最近很忙,距离上一篇博文过去已经10多天了,不想荒废。今天继续学习Python常用内置模块contextlib。其实主要是学习了contextlib这个模块中@contextmanager这个注解的使用。 前面学习过,在Python可以使用with语句自动的进行如文件处理时的打开和关闭操作。其实从原理上讲,在Python任何实现了__enter__和__exit__方法的类都可以使用w...
本部分学习Python常用内建模块itertools。itertools中提供了很多有用迭代器方法,用于生成和处理序列。直接通过代码学习 # 本部分学习Python内置的迭代器 import itertools from functools import reduce # 从6开始,依次加1计数,无限输出 counts = itertools.count(6) # 利用takewhil...
本部分学习Python内置模块hmac。实际hmac是承接hashlib中的md5等摘要算法加salt的操作。对该操作进行了封装,使用起来更加通用方便。在学些了之前内容的基础上,本部分内容比较简单直接。直接看代码即可。 # hmac 学习 message = b"This is a python" key = b" hashlib demo" h = hmac.new(key, messa...
本部分学习Python常用内置模块hashlib。主要封装了md5、sha1等常用的摘要算法。摘要算法主要用来判断文本、代码等是否被修改,以及利用其不可逆性,用于在数据库中密文保存密码。 # Python中hashlib摘要算法类库 import hashlib md5 = hashlib.md5() md5.update('This is a python hashlib demo'....
本部分学习Python内置模块struct。struct模块可以方便快速的处理字节,如将一个整数转化为字节数组的表示等。 传统情况下,如果我们想将一个32位的整数,用1个由4个字节组成的字节数组表示的话,需编写如下代码: n = 12345678 b1 = (n & 0xff000000) >> 24 b2 = (n & 0xff0000) >> 1...