Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于特性/错误发布,什么是好的SVN最佳实践?_Svn_Version Control - Fatal编程技术网

对于特性/错误发布,什么是好的SVN最佳实践?

对于特性/错误发布,什么是好的SVN最佳实践?,svn,version-control,Svn,Version Control,我在这里读了几个关于StackOverflow的问题,但我不是很满意。我所处的情况如下: 大型web应用程序项目(复杂部分,一些未知项): 主干是主要的稳定释放 分支机构发布了bug,例如bug-503、bug-524,这些bug中的一些涉及多个文件,而另一些则不太复杂,有些已经修复,然后重新访问多次 标签我主要在不同版本中使用标签,我们有三个环境:生产环境、沙盒环境和开发环境。。。标签发布有助于在整个环境中保持版本号的一致性,以便在任何给定时间我们都可以比较环境使用的版本号 所以我的大部分工作

我在这里读了几个关于StackOverflow的问题,但我不是很满意。我所处的情况如下:

大型web应用程序项目(复杂部分,一些未知项):

主干是主要的稳定释放

分支机构发布了bug,例如bug-503、bug-524,这些bug中的一些涉及多个文件,而另一些则不太复杂,有些已经修复,然后重新访问多次

标签我主要在不同版本中使用标签,我们有三个环境:生产环境、沙盒环境和开发环境。。。标签发布有助于在整个环境中保持版本号的一致性,以便在任何给定时间我们都可以比较环境使用的版本号

所以我的大部分工作都是在分支中完成的,然后合并回主干并生成一个标记释放。开发环境通常有一个包含所有最新bug修复/添加的构建。通常会对dev env进行审查,某些特性/bug被认为是稳定的,此时我会将这些特定特性合并到主干中。其他人会被审查,可能需要更多的工作,在这种情况下,我会进入特定的分支机构进行调整


我感到的痛苦是,我有dev和trunk,我必须将特性/bug分支合并到每个分支中。看起来很复杂,很麻烦我做得对吗?有没有更好的方法/练习,更简单的练习?还是我完全做错了,在这种情况下,我需要一个更好的方法

老实说,您的做法对我来说似乎很好,我已经说过,如果一个bug不会花费太多时间/代码,那么我建议只检查开发人员并在那里进行修复,然后将修复直接检查到存储库开发人员中


还有什么原因让你需要一个稳定的行李箱?开发人员多久中断一次开发,以确保您始终拥有一个稳定的主干?您应该删除等式中的dev部分,只需将所有内容检查到主干中,然后确保主干在损坏时尽快得到修复。这将使开发过程更加容易。只是一个让你的生活更轻松的想法

我更喜欢这种情况:

  • 对于琐碎的更改,在主干中开发;对于较大的工作,在特性/错误修复分支中开发
  • 还有针对环境和发布版本的分支。e、 g.“生产”、“阶段”
  • 标记应该是最终的,即不提交到标记
下面是一个生命周期示例:

发展

  • 在主干和分支中使用一些developent-bug-1、bug-2、feature-1和feature-2。一旦验证了bug和功能,将稳定的bug和功能合并到主干中(例如,合并bug-1、bug-2和功能-1)
功能完成:

  • 一旦准备好暂存代码,就可以将主干分支到分支“暂存”中,以前在暂存中的任何代码都将被主干代码替换。后台系统总是运行后台代码的构建,以便您可以进行测试。可以在主干和特性/错误分支中继续开发
发布:

  • 一旦阶段分支足够稳定,就可以将其分支到发布分支。将其分支到名为“release-1.X”的分支,现在将此修订标记为“release-1.0.0”。生产服务器可以运行release-1.0.0标记的构建。不要将任何内容提交到此标记
修正错误:

  • 如果您注意到生产代码中有一个bug,可以在主干中修复它,将修复合并到1.X版本分支,然后将固定版本标记为1.0.1,并指示生产服务器运行此新版本的构建

我需要一些方法来选择发布哪些bug/功能,以及什么时候主干会有bug-A、bug-B,而开发人员会有bug-A、bug-B、bug-C和feat。我知道你在说什么,但我不会犹豫在主干中扔一堆东西。也许你正在测试的功能有点不足,或者你们比我们更谨慎,但在大多数情况下,我会说只要把功能放在后备箱里,如果你破坏了它,就可以修复它。