Version control 关于建立版本控制系统的设想

Version control 关于建立版本控制系统的设想,version-control,pvcs,serena,Version Control,Pvcs,Serena,我的任务是为我们的web开发人员设置一个版本控制。我选择的软件是Serena PVCS,因为我们已经有其他非web开发人员在使用它 我很难决定如何设置它,所以我将描述如何在我们的系统中进行开发,希望它能引发一些关于如何最好地进行开发的讨论 我们有3台服务器:开发、UAT/分段和生产。web开发人员只有在开发服务器上编写和测试代码的权限。一旦他们编写了代码,他们就必须通过一个认证过程,将代码移动到UAT/Staging,然后在那里彻底测试代码之后,将其移动到生产环境中 似乎让开发人员在开发过程中使

我的任务是为我们的web开发人员设置一个版本控制。我选择的软件是Serena PVCS,因为我们已经有其他非web开发人员在使用它

我很难决定如何设置它,所以我将描述如何在我们的系统中进行开发,希望它能引发一些关于如何最好地进行开发的讨论

我们有3台服务器:开发、UAT/分段和生产。web开发人员只有在开发服务器上编写和测试代码的权限。一旦他们编写了代码,他们就必须通过一个认证过程,将代码移动到UAT/Staging,然后在那里彻底测试代码之后,将其移动到生产环境中

似乎让开发人员在开发过程中使用版本控制来控制他们不断更改和测试的代码是一件麻烦事。通常一次只有一个开发人员在一个模块上工作,因此没有太多(如果有的话)过度编写其他人工作的风险

我的想法是让他们只在准备好进入UAT/Staging时使用版本控制。这使他们能够开发和测试,而无需不断地签入代码

然后,认证小组可以使用版本控制来帮助查看对模块所做的更改,并确保他们总是从开发人员那里获得最新版本,以便在UAT/Staging上发布(现在我们依靠开发人员压缩更改的文件并通过web请求系统上传)

这将负责开发的文件端,但使整个数据库端脱离版本控制。这是我需要考虑的其他事情…


任何想法或想法都将不胜感激。谢谢。

使用源代码管理不是什么麻烦事,它是一种工具。在使用新的API和库时,拥有分支和标记的好处是非常宝贵的

另外,几个月前,开发人员的一台机器出现故障并丢失了所有最新的源代码,我们问他最后一次将代码提交到源代码管理是什么时候,当时是2个月。有时候,当你达到里程碑时,用它来备份东西是很好的


我通常每周进行几次源代码管理,这取决于我是否达到了一个好的停止点,并且我将要继续进行一些不同或更大的工作。

我不会将源代码管理视为烦恼。有关原因,请参见Nicks的答案

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

在您的情况下,可能需要解释和讨论发布分支 与您的开发人员和质量保证。 这意味着您的开发人员可以决定在发布中包含哪些功能 当登台人员忙于测试源的“登台”分支时, 您的开发人员可以在不干扰登台团队的情况下开发下一个版本

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

但是再次重申:确保您的团队同意新的开发过程。否则,设置版本控制系统会浪费时间

该过程至少应包括:

  • 何时作出承诺
  • 何时分支/合并
  • 标记什么/何时标记
  • 总体工作流程

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

我使用过Serena,这确实是一个麻烦。除了Serena在签入签出过程中增加的不愉快的工作流程开销之外,除了最简单的任务之外,做任何事情都会带来真正的痛苦

在Serena ChangeMan中,本地机器上的所有代码都通过中央服务器进行管理。这是一个非常糟糕的设计。这意味着许多通常由开发人员完成的日常分支维护工作都必须通过拥有管理员权限的人来完成,这使得这个人1)成为瓶颈,2)因为他们有一份吸吮灵魂的工作而感到痛苦

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

此外,工具很糟糕,用户界面也很糟糕。你永远也找不到已经接受过使用培训的开发人员,因为它太晦涩了


所以,如果另一个团队说你必须使用Serena,请后退。那种产品很糟糕。

一周几次?哇…我每天至少承诺2-3次。我想有一天,我犯了大约10次…使用Serena Dimensions是一件令人烦恼的事,但我接受你的观点-这比什么都不做风险小。谢谢。我曾与其他开发小组接触过,但那些拥有像我们这样的开发风格的开发小组(每个项目一个开发人员)只需让开发人员决定如何使用它(何时提交/分支/合并)。我需要为我们的开发人员制定一套标准,这样我就不会让他们做1000种不同的事情,1000种不同的方式,当项目交付时,新开发人员会有一个线索。哦,请告诉我更多-这是一个糟糕的产品,但我现在有了