如何将单个代码库指向多个SVN项目

时间:2013-08-05 13:01:21

标签: svn

该组织正在考虑从Visual Source Safe转向Subversion。 VSS中的当前方法使用相同的本地Netbeans项目来处理dev,qa和release代码,并将更改从本地项目(例如P:\ test)上载到相应的VSS项目(例如dev)。在线查看时,我可以看到大量资源描述将SVN指向共享代码库,例如herehere,但与其他项目一样,这似乎是在多个项目之间共享资源,而不是将单个代码库指向存储库上的多个项目。

我的直觉是,让每个项目本地(即dev,qa和release)指向特定的存储库,并将需要从dev开始的文件复制到qa,而不是尝试复制一个本地项目的VSS方法用于保存多个存储库代码库。任何意见都非常感谢!

1 个答案:

答案 0 :(得分:0)

Subversion根本不支持在存储库之间复制文件。为同一个项目维护3个存储库将是疯狂的下降。

您也不想拥有“多个代码库” - 它只是一个代码库,您只需要有一个明确的流程来将您的更改从开发,qa转移到发布。为此,您需要标签和组合的组合。分支机构。定期合并更改。确切的实现将取决于您如何管理应用程序的开发,并且可能必须更改一些。因为你必须取消学习使用VSS所学到的一切,因为VSS ......好吧,它很糟糕。

有以下假设:

  • 所有开发人员在积极开发期间使用公共代码库
  • 您有一种方法可以说“好了,我们这里有什么准备进行QA测试”
  • 您需要继续开发,同时修复QA中的错误
  • 一旦某些东西投入生产,你无法在不经历整个过程的情况下改变生产中的东西(如果你没有这个,你有一天会弄得一团糟)。

我会推荐以下内容:

  1. 按照in the manual所述创建“传统”主干/分支/标签结构。所有开发人员都会从主干检查进行常规开发工作。真的,请阅读本手册的整个章节(两次),因为它是我在这里布置的更长,更详细的版本。
  2. 当您决定将版本推送到QA时,请通过将中继复制到branches下的目录来创建分支。你如何命名这取决于你,但要清楚和一致。例如,如果您要将版本命名为4.2,则可以将其命名为QA-4.2(下次分支为4.3时,将其命名为QA-4.3,依此类推)。
  3. 如果(何时)在QA测试中发现错误,则将其修复为针对QA-4.2分支的补丁。无论谁负责这项工作,都需要查看第二份工作副本以进行这些更改并将其提交给分支机构。
  4. 定期将您在QA分支后退中制作的补丁合并到主干。否则你在4.2中修复的那些错误将在4.3。
  5. 中回来
  6. 如果QA中的代码已通过所有测试并且有幸进行生产,请通过将QA分支复制到tags目录来创建标记。您可能希望与QA中的内容保持一致,名称为tags/4.2-RELEASE或接近该名称。然后发布新版本。
  7. 现在可能是在您的分支上使用svn merge --reintegrate的时间,然后可能会删除分支。代码已经发布,我们现在正在转向下一个版本。
  8. tags目录中的内容不会被更改。如果有人在生产中发现了一个错误,那么就像任何新的开发一样。否则这些更改将无法回到主干(除非有人正在仔细观察真的)并且错误将会重新出现。
  9. Subversion项目本身create & maintain their release branches如何提供信息也是如此。