如何在subversion中处理解决方案/版本控制

时间:2010-03-11 23:56:28

标签: svn ankhsvn

我们正在使用ankhsvn来检查我们的.net代码,但是我的设置有两个问题需要解决。

1 \我认为拥有像svn这样的工具的一个关键原因是你可以回滚到你的代码库的早期版本。如果开发人员只是检查代码,那么如何从颠覆中获得1.1版本(比如当前的生产版本)?

2 \在VS中您有解决方案的概念,许多解决方案可能使用相同的项目。如何确保开发人员何时签出解决方案,他们会获得属于该解决方案的相应项目版本?

3 个答案:

答案 0 :(得分:5)

  1. 您需要了解标签。我们的想法是,当您达到发布X的时间点时,您将在Subversion存储库中创建只读/标记/ release_X。你继续在/ trunk或/ branch上工作;如果你需要/ tag / release_X,你只需查看它。
  2. 我不知道“解决方案”的概念是什么。如果您的意思是您有一个共享项目变成JAR或WAR或DLL或多个项目使用的程序集,您可以检查该工件并让其他项目像其他任何第三方JAR一样检查它。
  3. 我建议您阅读SVN Red Bean本书。

答案 1 :(得分:1)

在ankhsvn中创建“标记”(应用程序的新版本):

  1. 在解决方案资源管理器中,右键单击某个项目并选择Subversion>分支解决方案   将项目还原为特定版本
  2. 在“创建分支/标记”窗口中,选择分支或标记的来源。
    • HEAD或存储库中的最新修订
    • 存储库中的特定旧版本
    • 您当地的工作副本
  3. 要自动将工作副本切换到新分支,请选择“创建后切换到分支”。

    注意:如果您的工作副本有修改,那么当您切换时,这些更改将合并到分支的工作副本中。

  4. 输入一条日志消息,说明您创建分支或标记的原因。
  5. 单击“确定”。
  6. 这是一个非常糟糕的解决方案,对我来说太过手动了(它不会“知道”原始项目位置,我不希望这个过程变得那么繁重)我真正想要的是一键点击做这项工作,所以将继续调查。

答案 2 :(得分:1)

问题2:

如果项目代码存储在svn存储库中的不同目录而不是解决方案中,则可以使用svn:externals属性将项目的相应版本与解决方案相关联。如果将解决方案的主干上的externals属性设置为指向标记,则将使用解决方案检出已标记的项目的版本。

我不知道AnkhSVN接口是否提供了添加externals属性的方法,因为我通常使用TortoiseSVN存储库浏览器来完成任务。

我将推荐阅读Red Bean book