该组织正在考虑从Visual Source Safe转向Subversion。 VSS中的当前方法使用相同的本地Netbeans项目来处理dev,qa和release代码,并将更改从本地项目(例如P:\ test)上载到相应的VSS项目(例如dev)。在线查看时,我可以看到大量资源描述将SVN指向共享代码库,例如here或here,但与其他项目一样,这似乎是在多个项目之间共享资源,而不是将单个代码库指向存储库上的多个项目。
我的直觉是,让每个项目本地(即dev,qa和release)指向特定的存储库,并将需要从dev开始的文件复制到qa,而不是尝试复制一个本地项目的VSS方法用于保存多个存储库代码库。任何意见都非常感谢!
答案 0 :(得分:0)
Subversion根本不支持在存储库之间复制文件。为同一个项目维护3个存储库将是疯狂的下降。
您也不想拥有“多个代码库” - 它只是一个代码库,您只需要有一个明确的流程来将您的更改从开发,qa转移到发布。为此,您需要标签和组合的组合。分支机构。定期合并更改。确切的实现将取决于您如何管理应用程序的开发,并且可能必须更改一些。因为你必须取消学习使用VSS所学到的一切,因为VSS ......好吧,它很糟糕。
有以下假设:
我会推荐以下内容:
branches
下的目录来创建分支。你如何命名这取决于你,但要清楚和一致。例如,如果您要将版本命名为4.2,则可以将其命名为QA-4.2
(下次分支为4.3时,将其命名为QA-4.3
,依此类推)。QA-4.2
分支的补丁。无论谁负责这项工作,都需要查看第二份工作副本以进行这些更改并将其提交给分支机构。tags
目录来创建标记。您可能希望与QA中的内容保持一致,名称为tags/4.2-RELEASE
或接近该名称。然后发布新版本。svn merge --reintegrate
的时间,然后可能会删除分支。代码已经发布,我们现在正在转向下一个版本。tags
目录中的内容不会被更改。如果有人在生产中发现了一个错误,那么就像任何新的开发一样。否则这些更改将无法回到主干(除非有人正在仔细观察真的)并且错误将会重新出现。Subversion项目本身create & maintain their release branches如何提供信息也是如此。