- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为什么说Git比SVN更好
为什么说Git比SVN更好
为什么说Git比SVN更好
为何说Git比SVN更好H5App开发用 WeX5,体验极速秒开! ?
在版本控制系统的选型上,是选择
Git
仍是
SVN?
关于开源项目来说这不算问题。使用
Git
极大地提升了开发
效率、扩大了开源项目的参加度、
加强了版本控制系统的
安全性,选择
Git
早已经是大势所趋。
但关于公司用户来说这个信心不太好下。部分原由是出于对
Git的误会,部分原由是尚不认识Git究竟能给项目管理带
来什么利处。希望本文能对您项目的版本控制系统选型供给
帮助。
对SVN的迷信和对 Git的误会
误会1:SVN只好检出(checkout)一个版本(revision)的代码,而Git却能够脱库!这个误会是这样广泛,几乎成了SVN在公司市场中封杀Git
的尚方宝剑。其实略微思虑一下这个谣言就很难流传。既
然SVN能够读取受权接见的文件的每一个版本,那么就能
够重组这些版本,从而实现对版本库的完好复制。即SVN
也能够脱库。
SVN脱库的工具SVN自己就供给:svnsync。这个工具主要用于SVN的版本库镜像。比如将版本库
/svn/repo脱库到当地的 dump目录,命令如
下:
$svnadmincreatedump
$printf'#!/bin/sh\nexit0\n'>
dump/hooks/pre-revprop-change
$chmoda+xdump/hooks/pre-revprop-change
$svnsyncinitfile://$(pwd)/dump/svn/repo$svnsyncsyncfile://$(pwd)/dump
有人以为SVN能够对目录受权,从而阻挡对整个版本库进
行脱库操作。下边就来看看 SVN的受权终究能否靠谱。
误会
2:SVN
能对目录进行精美受权,而
Git
太不安全
SVN
的目录受权对管理员来说是灾害,
管理负担相当重, 在
分支或里程碑众多的时候很难作对。
这是由于
SVN
的分支
和里程碑(tags)自己就是一个目录(使用目录拷贝实现的)。
比如管理员为名为demo的SVN版本库受权。一个其实不太复
杂的主线(/trunk)受权以下:
[demo:/trunk]
@demo-admin=rw
@leaders=r[demo:/trunk/doc]
@demo-dev=rw
@designers=rw[demo:/trunk/src/apps]
@demo-dev=rw[demo:/trunk/src/common]
@demo-dev=rw[demo:/trunk/src/html]
@designers=rw[demo:/trunk/src/secret]
*=
@demo-admin=rw
jiangxin=rw
假如项目创立了保护分支/branches/1.x,若和 /trunk受权
同样,则需要将上述受权在/branches/1.x下重修。需要在授
权文件中再增添以下受权指令:
[demo:/branches/1.x]
@demo-admin=rw
@leaders=r[demo:/branches/1.x/doc]
@demo-dev=rw
@designers=rw[demo:/branches/1.x/src/apps]
@demo-dev=rw[demo:/branches/1.x/src/common]
@demo-dev=rw[demo:/branches/1.x/src/html]
@designers=rw[demo:/branches/1.x/src/secret]
*=
@demo-admin=rw
jiangxin=rw假如版本库的分支和里程碑愈来愈多,配置的工作量相当可
观,稍有不慎不是受权文件格式损坏致使SVN没法工作,就
是造成开放受权。我以前写过 SVN路径受权的补丁,并写了一款SVN版本库
管理的开源软件(拜见《pySvnManager手册》),但想
完满解决这个问题很难。我的一个假想是在
SVN
对分支和
里程碑受权检查时缺省使用
/trunk
的受权,但这样的实现要
求使用SVN严格按照商定俗成的三个顶级目录的规范。
Git关于写操作能够精美到目录和分支级别(使用Gitolite作
为服务器),但作为散布式版本库控制系统,在设计上只好
实现版本库量子化的读受权。即某用户对整个版本库要么
都能读,要么对整个版本库都不可以读。
那么怎样控制 Git版本库的读受权呢?实质上Git能够经过
子模组来实现细粒度的读受权。即在项目需要精美受权的
场合,将版本库拆分为多个 Git版本库进行独自受权,再使
用子模组将多个版本
文档评论(0)