我的任务是为我们的Web开发人员设置版本控制。由于我们已经有其他非网络开发人员使用它而为我选择的软件是Serena PVCS。
我很难决定如何设置它,所以我将描述我们的系统中如何进行开发,并希望它会产生一些关于如何最好地进行开发的讨论。
我们有3台服务器,开发,UAT /暂存和生产。 Web开发人员只能访问在开发服务器上编写和测试其代码。一旦他们编写代码,他们必须通过认证过程才能将代码移到UAT / Staging,然后在那里彻底测试代码之后,它就会转移到Production。
似乎让开发人员对他们的开发代码使用版本控制,他们不断变化,测试将是一个烦恼。通常一次只有一个开发人员在一个模块上工作,所以没有太多(如果有的话)覆盖其他人工作的风险。
我的想法是让他们只有在准备好去UAT / Staging时才使用版本控制。这允许他们在不经常检查代码的情况下进行开发和测试。
然后,认证组可以使用版本控制来帮助查看对模块进行了哪些更改,并确保他们始终从开发人员那里获得UAT / Staging的最新修订版(现在我们依赖于开发人员压缩他们更改的文件并通过Web请求系统上传。
这会处理开发的文件方面,但会使整个数据库方面脱离版本控制。这是我需要考虑的其他事情......
任何想法或想法将不胜感激。感谢。
答案 0 :(得分:7)
我不会将源代码控制视为烦恼。请参阅Nicks的答案。
如果我是你,我不会自己决定,因为它不是 在某些服务器上设置版本控制软件的问题但是 改变和改进开发程序的问题。
在您的情况下,可能值得解释和讨论发布分支 与您的开发人员和质量保证。 这意味着您的开发人员决定将哪些功能包含在发行版中 当舞台工作人员忙于测试源的“舞台”分支时, 您的开发人员可以在不干扰分段团队的情况下完成下一个版本的工作。
您还可以考虑功能分支,这意味着网站的每个特定新功能都有一个新分支。如果实现该功能,则会合并这些分支。
但又一次:确保你的团队同意新的开发过程。否则,您可以通过设置版本控制系统来浪费您的时间。
该过程至少应包括:
答案 1 :(得分:6)
我使用过Serena,这确实令人烦恼。除了工作流开销的不愉快之外,Serena还会在签入检查流程之上,除了最简单的任务之外,做任何事情都是一件非常痛苦的事。
在Serena ChangeMan中,本地计算机上的所有代码都通过中央服务器进行管理。这是一个非常糟糕的设计。这意味着通常由开发人员完成的大量日常分支维护工作必须经历具有管理员权限的任何人,使该人成为瓶颈,并且因为他们有一个吸魂癖的工作而感到愤怒。 / p>
集中管理还严格限制开发人员可以在自己的计算机上使用代码。例如,如果要在盒子上本地创建代码的第二个副本,只是为了进行快速测试或其他任何操作,您必须让管理员在您的盒子上设置第二个存储库。当您限制此类开发人员时,会限制团队的工作效率和创造力。
此外,工具很糟糕,用户界面也很糟糕。你永远无法找到已经接受过培训的开发人员,因为它太模糊了。
所以,如果另一个团队说你必须使用Serena,请回过头来。那个产品很糟糕。
答案 2 :(得分:1)
使用源代码控制不是任何烦恼,它是一个工具。在使用新的API和库时,拥有分支和标记的好处是非常宝贵的。
只是一个附注,几个月后,开发者的机器之一失败并丢失了他所有的最新来源,我们询问他最后一次将代码发送到源代码控制器时是2个月。当你达到里程碑时,有时只需要备份东西就可以了。
我通常会每周承诺控制源几次,这取决于我是否达到了一个好的停止点并且我将要转向不同或更大的东西。
答案 3 :(得分:0)
从最后两个优点开始,我还会问您的其他非Web开发人员他们正在使用哪些开发流程,因此您不必创建新的流程。他们也会遇到许多在您的环境中出现的问题,无论是技术使用相同的操作系统还是设置和管理。