Version control 使用集中版本控制的正确/最佳/最有效方法是什么?

Version control 使用集中版本控制的正确/最佳/最有效方法是什么?,version-control,perforce,Version Control,Perforce,我作为一个小型开发团队(4人)的一部分工作 我们中没有人在版本控制方面有着丰富的经验,但根据我们公司的政策,我们必须使用Performance。在很大程度上,这是一个伟大的过程,但我们一直坚持一个我们之间达成一致的简单过程,这个过程开始变得越来越不理想。我想知道人们是否可以分享他们的版本控制工作顺利和有效的经验 我们最初的设置如下: 我们有一个主干,它保存着现在的生产代码 每个用户为他们的工作创建一个开发分支,正如我们所做的那样 总是在相互不影响的不同领域工作 我们在RedhatLinux上开

我作为一个小型开发团队(4人)的一部分工作

我们中没有人在版本控制方面有着丰富的经验,但根据我们公司的政策,我们必须使用Performance。在很大程度上,这是一个伟大的过程,但我们一直坚持一个我们之间达成一致的简单过程,这个过程开始变得越来越不理想。我想知道人们是否可以分享他们的版本控制工作顺利和有效的经验

我们最初的设置如下:

  • 我们有一个主干,它保存着现在的生产代码
  • 每个用户为他们的工作创建一个开发分支,正如我们所做的那样 总是在相互不影响的不同领域工作
  • 我们在RedhatLinux上开发,代码运行于/var/www/html。因此,我们同步到一个工作区,并将这些文件复制到此路径,更改权限,然后在那里执行更改。当我们想要签入时,我们会签出工作区中的文件,用我们更改的内容覆盖它们并提交(我认为这可能是我们最薄弱的部分)
  • 如果对主干的任何更改影响到相关功能,则将合并这些更改。然后部署代码进行测试
  • 测试完成后,我们将分支合并到主干中,然后从当前主干创建一个发布分支。该分支将再次测试,然后发布到生产中
因为我们的项目很小,而且非常分散,所以这在以前工作得很好。然而,现在我们都在同一个大型开发分支上工作。自dev分支创建以来,已经发布了更改,在完成之前还将进行更多更改

我们还需要部署代码,以便在开发的各个阶段进行测试,并且该代码需要与开发更改以及对生产所做的任何更改保持同步

在这个阶段,我们已经决定,我们将在开发分支的同时创建发布分支,每次需要测试版本时,我们都会将当前主干(生产)和当前开发分支合并到其中,以使其完全处于最新状态。然而,这种合并需要整个团队花费大量时间,而且效果并不太好


有人告诉我,不同的团队有不同的工作方式,所以我不想为我的流程寻找解决方案,但我很想听听您使用什么设置来分享您的意愿

如果您对版本控制和最佳实践不是特别熟悉,我建议您在Performance中使用Streams。在功能上,流和分支非常相似。与Streams的不同之处在于,Perforce利用基于流类型的预构建关系并提供基本治理(即,在合并之前,您无法将这些文件复制到其他流)

管理员可以覆盖所有命令

一旦您使用了流,您就可以用几种不同的方法来做事情。您有三种类型的流:发布(最稳定)、主(稳定)和开发(最不稳定)。您可以创建任何喜欢的层次结构


我想在你的例子中,我会有一条主线,一个集成开发流,然后是供每个开发人员使用的开发流。这样,每个人都有自己的游乐场,并且可以在完成更改后将其移动到集成流中。这些完成的更改可以合并到其他开发人员流中。

太宽泛了:关于这个主题的整本书(我可以推荐)都已经写好了。答案太多,无法掩盖。一个问题是,你使用VC的方式在很大程度上取决于你的开发过程:VC是众多支持构建和维护系统的工具之一。我并不是真的在设计我的过程或任何东西时寻求帮助。正如我所说,我只是想看看其他人使用了哪些流程。如果你或其他人的太复杂了,无法像我那样总结,那就好了。不过谢谢你的推荐,我会查一查的!