【问题标题】:how to handle solutions/versioning in subversion如何在颠覆中处理解决方案/版本控制
【发布时间】:2010-03-11 23:56:28
【问题描述】:

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

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

2\ 在 VS 中你有解决方案的概念,许多解决方案可能使用同一个项目。我如何确保开发人员在签出解决方案时获得属于该解决方案的项目的适当版本?

【问题讨论】:

    标签: svn ankhsvn


    【解决方案1】:
    1. 您需要了解标签。这个想法是,当您到达发布 X 的时间点时,您将在您的 Subversion 存储库中创建一个只读的 /tag/release_X。您继续在 /trunk 或 /branch 上工作;如果您需要 /tag/release_X,只需检查一下即可。
    2. 我不知道“解决方案”是什么概念。如果您的意思是您有一个共享项目变成 JAR 或 WAR 或 DLL 或多个项目使用的程序集,您可以签入工件并让其他项目像任何其他 3rd 方 JAR 一样简单地签出它。

    我建议阅读SVN Red Bean 的书。

    【讨论】:

    • 谢谢,看起来是个不错的起点。至于第 2 点,是的,我的意思是……我记得前段时间研究过 ankhsvn,并读到它没有实现。
    【解决方案2】:

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

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

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

    4. 输入一条日志消息,说明创建分支或标签的原因。
    5. 点击确定。

    这是一个非常糟糕的解决方案,对我来说太手动了(它不“知道”原始项目的位置,我不希望这个过程那么繁琐)我真正想要的是一键点击这份工作,所以会继续调查。

    【讨论】:

    【解决方案3】:

    对于问题 2:

    如果项目代码与解决方案存储在 svn 存储库中的不同目录中,您可以使用svn:externals 属性将项目的适​​当版本与解决方案相关联。如果您将解决方案主干上的 externals 属性设置为指向某个标记,则已标记的项目版本将与该解决方案一起签出。

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

    我会支持阅读Red Bean book的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多