我的团队一直致力于基于php的web应用程序,后端的msql和前端的html,css,jquery。我们一直在工作很长一段时间没有版本控制。该项目现在变得非常庞大和复杂,并且觉得是时候使用某种版本控制(vc)了。
我们已经阅读了很多关于vc的内容,并且已经找到了人们建议的几种技术。虽然它可能是一个完美的方法。它没有有效地适用于我们的案例。
我们的应用程序分为多个模块,我们将工作外包给一些自由职业者。自由职业者根据他们的技能独立地在前端或后端工作。 到目前为止,这项工作一直在私人网络上进行,我们希望转向在线系统。
现在的问题是我们无法将整个项目的源代码分发给所有开发人员。开发人员只能使用一些公共库及其各自的模块。
因此我们不能允许将整个项目下载到每个开发人员本地计算机上。因此,我们需要找到一种方法让所有开发人员在同一分支上或在主干上工作。只能访问代码的某些部分,并且在保存/提交时能够检查他们的更改如何立即生效。
有没有办法可以实现上述任务?对于Web应用程序?使用类似subversion的版本控制?
总而言之,我们尝试实施的功能如下。
保存/提交的即时效果 (当每个开发人员保存/提交时,他们应该能够通过浏览器立即测试效果)
受限访问 (每位开发人员只能访问项目的特定部分,而不能访问整个项目。)
在线存储库/在线复制 - (我们正在开发VPN连接,并且希望网站能够在网络副本上工作。所以当提交时,开发人员可以在线查看他的更改,而不是VPN)
是否可以使用subversion实现这样的配置,还是应该查看其他开源版本控制工具?
答案 0 :(得分:3)
试图阻止开发者访问整个源代码树似乎有点误导我。这是公司政治吗?你不相信你的开发者吗?
无论如何..
实现所需内容的最简单方法可能是将每个模块放入自己的存储库(svn,git,等等)。然后,您可以有选择地选择谁有权访问哪个仓库。
答案 1 :(得分:0)
答案 2 :(得分:0)
首先,我建议您阅读“持续投放”一书(网站here)。它提供了很多关于如何设置此类事物的例子。
其次,是的,SVN允许您assign permissions on a folder level以及回购级别(但请阅读“您真的想要这样做”部分)。
第三,确保开发人员拥有最新的副本是你应该通过纪律灌输的 - “在开始工作之前,在提交之前,运行svn update”)。提交后挂钩有一个令人讨厌的破坏习惯的习惯,你并没有阻止破坏构建的提交。
第四,我考虑建立一个持续集成服务器(也在持续交付书中描述)。这样,无论何时将开发人员的工作整合在一起,这都可以确保您拥有干净,有效的构建。