4

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

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

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

4

3 回答 3

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

我建议阅读SVN 红豆书。

于 2010-03-12T00:01:36.570 回答
1

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

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

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

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

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

于 2010-03-12T01:44:10.620 回答
1

对于问题 2:

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

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

我会推荐阅读红豆书

于 2010-03-12T03:29:12.067 回答