看到这样几个特点:
1、任意机器都可以存放版本,松散而平等。
2、分布式不是云计算,并非一份文件分割存放在多台机器上。
3、自己机器本身也是一个版本库,可以自己向自己提交,这就使得回溯变得简单,不需要网络也不影响他人。
4、可以随时开一个分支,而不用拷贝代码到另外一个目录。也即只有一个当前操作版本?系统内部保存的是各个版本之间的区别?
5、可以把一个版本在同事的机器之间任意传递,便于codereview。
猜测下GIT设计思路:
1、以往SVN/CVS的commit和merge通过中心库的原子操作来保证绝对安全正确,但实际上在多数情况下并非必须,因为一个模块对应一个人,大多数时间都在自己模块上做叠加,需要跟别人merge同一段代码的情况并不多,所以不要每次都去劳驾开支大牵涉多的中心库,可以在自己硬盘上完成大多数commit和merge。
2、每个程序员都需要一个不牵涉他人的本模块的版本管理器,做本模块的保存和回溯,这个才是最多的使用,这也不用劳驾中心库的版本管理器。
感觉这个负载均衡分配的思路不错,考虑以后尽量用GIT了。下面的任务是钻研下GitHub。
1、任意机器都可以存放版本,松散而平等。
2、分布式不是云计算,并非一份文件分割存放在多台机器上。
3、自己机器本身也是一个版本库,可以自己向自己提交,这就使得回溯变得简单,不需要网络也不影响他人。
4、可以随时开一个分支,而不用拷贝代码到另外一个目录。也即只有一个当前操作版本?系统内部保存的是各个版本之间的区别?
5、可以把一个版本在同事的机器之间任意传递,便于codereview。
猜测下GIT设计思路:
1、以往SVN/CVS的commit和merge通过中心库的原子操作来保证绝对安全正确,但实际上在多数情况下并非必须,因为一个模块对应一个人,大多数时间都在自己模块上做叠加,需要跟别人merge同一段代码的情况并不多,所以不要每次都去劳驾开支大牵涉多的中心库,可以在自己硬盘上完成大多数commit和merge。
2、每个程序员都需要一个不牵涉他人的本模块的版本管理器,做本模块的保存和回溯,这个才是最多的使用,这也不用劳驾中心库的版本管理器。
感觉这个负载均衡分配的思路不错,考虑以后尽量用GIT了。下面的任务是钻研下GitHub。