0

I've been tasked with setting up a version control for our web developers. The software, which was chosen for me because we already have other non-web developers using it, is Serena PVCS.

I'm having a hard time trying to decide how to set it up so I'm going to describe how development happens in our system, and hopefully it will generate some discussion on how best to do it.

We have 3 servers, Development, UAT/Staging, and Production. The web developers only have access to write and test their code on the Development server. Once they write the code, they must go through a certification process to get the code moved to UAT/Staging, then after the code is tested thoroughly there, it gets moved to Production.

It seems like making the Developers use version control for their code on Development which they are constantly changing and testing would be an annoyance. Normally only one developer works on a module at a time so there isn't much, if any, risk of over-writing other people's work.

My thought was to have them only use version control when they are ready to go to UAT/Staging. This allows them to develop and test without constantly checking in their code.

The certification group could then use the version control to help see what changes had been made to the module and to make sure they were always getting the latest revision from the developer to put up on UAT/Staging (now we rely on the developer zip'ing up their changed files and uploading them via a web request system).

This would take care of the file side of development, but leaves the whole database side out of version control. That's something else that I need to consider...

Any thoughts or ideas would be greatly appreciated. Thanks.

4

4 回答 4

7

我不会将源代码控制视为烦恼。原因见尼克斯的回答。

如果我是你,我不会自己决定,因为这不是在某个服务器上设置版本控制软件的问题,而是更改和改进开发程序的问题。

在您的情况下,可能值得 与您的开发人员和质量保证解释和讨论发布分支。这意味着您的开发人员决定将哪个功能包含到一个版本中,并且当登台团队忙于测试源代码的“登台”分支时,您的开发人员已经可以在不干扰登台团队的情况下处理下一个版本。

您还可以考虑功能分支,这意味着网站的每个特定新功能都有一个新分支。如果实现了该功能,这些分支将被合并回来。

但同样:确保您的团队同意新的开发流程。否则,您会通过设置版本控制系统来浪费您的时间。

该过程至少应包括:

  • 何时提交。
  • 何时分支/合并。
  • 什么/何时标记。
  • 整体工作流程。
于 2009-08-15T10:59:55.687 回答
6

我用过Serena,确实很烦人。除了 Serena 在签入签出过程之上的工作流开销令人不快之外,除了最简单的任务之外,做任何事情都非常痛苦。

在 Serena ChangeMan 中,本地机器上的所有代码都通过中央服务器进行管理。这是一个非常糟糕的设计。这意味着通常由开发人员完成的大量日常分支维护工作必须经过任何拥有管理员权限的人,这使得该人 1)成为瓶颈,2)因为他们的工作令人苦恼而苦恼。

集中式管理还严格限制了开发人员能够在自己的机器上对代码进行的操作。例如,如果您想在您的机器上本地创建代码的第二个副本,只是为了进行快速测试或其他什么,您必须让管理员在您的机器上设置第二个存储库。当你像这样限制开发人员时,你就会限制团队的生产力和创造力。

此外,工具很糟糕,用户界面也很糟糕。而且您将永远无法找到已经接受过使用它培训的开发人员,因为它太晦涩难懂了。

所以,如果另一个团队说你必须使用 Serena,请回击。那个产品太可怕了。

于 2009-11-11T22:24:16.547 回答
1

使用源代码管理并不麻烦,它是一种工具。在使用新的 API 和库时,拥有分支和标记的好处是无价的。

顺便说一句,几个月前,开发人员的一台机器发生故障并丢失了他所有的最新源代码,我们问他最后一次将代码提交到源代码控制是什么时候,是 2 个月。有时,当您达到里程碑时,只需使用它来备份内容就不错了。

我通常每周进行几次源代码控制,这取决于我是否已经达到了一个好的停止点并且我即将转向不同的或更大的东西。

于 2009-08-14T18:32:40.123 回答
0

继最后两个要点之后,我还会询问您的其他非 Web 开发人员他们正在使用什么开发流程,这样您就不必创建新流程了。他们还会遇到在您的环境中出现的许多问题,包括使用相同操作系统的技术问题以及设置和管理问题。

于 2009-08-15T12:20:14.267 回答