3 回答
TA贡献2003条经验 获得超2个赞
集中化
虽然分散模式有其优点(并且允许私有提交或在没有网络的情况下工作,同时可以访问 满的(历史),仍然需要一套清晰的 集中Repos,作为所有开发人员的主要参考。 认证
:DVCS允许您“签署”(提交)您的代码作为.几乎任何人(作者) foo
“,电子邮件” foo@bar.com
").你可以 git config user.name foo
,或 git config user.name whateverNameIFeelToHave
把你所有的承诺都用假名写在里面。 这与大型企业使用的独特的集中式“Active Directory”用户参考信息并不能很好地结合在一起。 授权
默认情况下,您可以克隆、推送或拉到 任何存储库和修改 任何分支或任何目录。 对于敏感项目,这可能是一个阻塞问题(银行界通常非常保护某些定价或量化算法,因为这些算法要求非常有限的人具有严格的读/写访问权限)。
集中化
*已为任何存储库设置了唯一的服务器,这些存储库必须由 全
用户。 备份一直在处理(每天递增,每周满)。 Drp(灾难恢复计划)已经实现,在另一个站点上有第二台服务器,并通过以下方式进行实时数据复制。 SRDF .此设置本身独立于所需的引用或工具类型(DVCS、Nexus repo、主Hudson调度程序或.):任何可能对发布到生产中至关重要的工具都需要安装在服务器上。
.
认证
*只有两种协议允许用户访问主要请求: 对组织外部的用户有用(如离岸开发), 和有用的 属属
Active Directory管理器不想创建的帐户(因为它将是一个“匿名”帐户):一个真实的人必须负责该通用帐户,而该帐户将是拥有私钥的 基于SSH,具有公钥/私钥: 基于https的,Apache通过LDAP设置对用户进行身份验证:这样,必须为那些repos上的任何git操作提供实际登录。 Git提供它的 ,不仅允许 pull
(阅读)通过http,但也 push
(写)通过http。
post-receive
git config user.name
.
授权
:前面的两个设置(ssh或https)都连接起来调用相同的Perl脚本集,名为 ,作为参数: 这两种协议检测到的实际用户名。 用户希望执行的git命令(克隆、推或拉)。
多站点间的数据交换
虽然这些用户都是通过同一个Active Directory进行身份验证的,但他们可以分布在世界各地(我为之工作的公司通常在两个或三个国家的团队之间进行开发)。DVCS自然是为了在这些分布式团队之间高效地交换数据而制作的。 跨环境复制
:负责身份验证/授权的设置允许在其他专用服务器上克隆这些存储库(用于集成测试、UAT测试、生产前和部署前目的)。 过程自动化
:您可以轻松地克隆回购,也可以在本地的一个用户的工作站上使用,用于单元测试,使用“有保护的提交”技术和其他聪明的用途: 您所见过的最聪明的源代码存储库是什么? ".简而言之,您可以推动第二个本地回购负责: 各种任务(代码的单元测试或静态分析) 如果这些任务成功,则向后推回主回购。 当
您仍在第一次回购中工作,而不必等待这些任务的结果。
.
:任何DVCS都有这些,主要的是 合并
(曾经尝试过用SVN做一个复杂的合并工作流吗?)或 血色
将6000个文件与ClearCase合并?)。 单独(合并)意味着你真的可以利用 ,在任何时候都可以将代码合并回另一个“主要”开发行,因为您会这样做: 首先,在你自己的回购程序中,不要打扰任何人。 然后在远程服务器上,将合并的结果推到中央回购系统上。
- 3 回答
- 0 关注
- 463 浏览
添加回答
举报