Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在公司中使用Git?_Svn_Git_Version Control - Fatal编程技术网

Svn 在公司中使用Git?

Svn 在公司中使用Git?,svn,git,version-control,Svn,Git,Version Control,在我的工作场所,我们有一个大型Subversion存储库,其中包含大约100个项目。有些项目通过svn:externals相互使用。通常所有人都有读写权限,但有时外部人员和实习生只限制对某些自定义文件夹的读写权限,因此他们得不到我们的王冠宝石 您将如何在git中构建它?每个项目都有自己的存储库?如何重用代码?您能否以某种方式实现访问权限?结构:是,每个存储库一个项目。Git是为它这样工作而设计的,它做得非常好 重用代码:使用(非常类似于svn:externals,只是更好) 访问权限:是的,访问

在我的工作场所,我们有一个大型Subversion存储库,其中包含大约100个项目。有些项目通过svn:externals相互使用。通常所有人都有读写权限,但有时外部人员和实习生只限制对某些自定义文件夹的读写权限,因此他们得不到我们的王冠宝石


您将如何在git中构建它?每个项目都有自己的存储库?如何重用代码?您能否以某种方式实现访问权限?

结构:是,每个存储库一个项目。Git是为它这样工作而设计的,它做得非常好

重用代码:使用(非常类似于svn:externals,只是更好)


访问权限:是的,访问控制通常是围绕ssh和公钥构建的。如果您想自己托管,请尝试,但实际上我强烈推荐托管解决方案,如。

如果您不需要限制读取访问,我将使用单个git repo


结构:文件系统层次结构

重用代码:通过构建系统

访问权限:写入访问是补丁合并。它可以由脚本控制,也可以由设计人员控制。如果您有3个项目,每个项目都有一个项目经理,负责合并主分支中的代码。记住,linux就是这样工作的,git特别适合这种情况

为什么使用单一回购?

主要原因是关于代码分歧。假设您有3个项目和一些共享库。团队A需要调整libXY的接口并提交代码,有两种情况:

  • 子模块:团队B和C必须更新他们的子模块,如果更改破坏了他们的代码,则向团队A报告。他们也可以自己更新代码,但是团队A也可能会有一些代码中断

  • 一个大的回购:团队A更改代码,直到所有测试通过。变化在上游融合,每个人都很高兴

  • 在场景一中运行所有测试也是可能的,但是,如果您有一个repo,那么这是一样的,因为您必须签出所有代码

    这是我的观点。也许你在回购协议中有一些大资产,你不想让每个人都签出,因为它们需要2GB。也许你的代码库太大了,以至于间接费用无关紧要

    但我相信,除非你是谷歌,IBM。。。管理多个回购协议所需支付的管理费用将太大,使你本可以花在更有效率的事情上的时间变得松散

    干杯,
    zimbatm

    我绝对不会将公司的源代码保留在GitHub这样的托管应用程序上。亚当,这是一个公平的意见,但请给出一个理由。是因为缺乏信任、对权力的需求、成本等吗?就我个人而言,为了方便和经济意义,我可以释放一些控制权(当然风险很小)。我认为相当多的公司会怀疑是否将其核心IP放在远程站点上。怀疑是一件好事,但无法计算风险/回报比则不是。每个公司的风险/回报率明显不同,因此如果需要,可以启动自己的gitosis设置。Ryan,github位于美国。这意味着,由于美国的各种法律,允许他们在不事先通知的情况下查看您的存储库。对于欧洲公司来说,这是一个很大的风险。