2

我正在试验 VirtualSVN Server、TortoiseSVN 和 AnkhSVN,一切对我来说还是很新的。

我已向 SVN 添加了 Visual Studio 2010 (VB) 解决方案。完成后,主干包含版本 1.0.0,我有一个包含版本 1.0.0 的标签,以及一个包含版本 1.0.0-dev 的分支。我开始在 1.0.0-dev(来自分支)上工作,当版本 1.1.0 准备好时,我创建了一个标签版本 1.1.0,和一个新的分支 1.1.0-dev。

然后我想将这个最新版本(分支 1.1.0-dev)合并到主干,但遇到了一个巨大的合并(树?)冲突列表。其中大部分是因为 dll 文件、可执行文件和其他二进制文件。忽略这些文件似乎是个好主意,所以我从 Windows 资源管理器中做了,右键单击每种类型的文件,从上下文菜单中选择“TortoiseSVN - 取消版本并添加到忽略列表 - *.dll”(之后还有 *.exe和其他一些文件)。

现在我留下了一个解决方案目录树,上面有很多黄色感叹号以及已删除的标记。

我的问题是:

  1. 如何更新主干以使其包含最新版本?
  2. 在构建解决方案时如何忽略 Visual Studio 创建的 dll?
  3. 有一个第三方 dll 未构建,应包含在存储库中,但文件可能保持不变,我应该如何处理?
4

1 回答 1

3

首先,要删除您拥有的已删除标记,您应该首先提交您的更改(在这种情况下,它们是删除)。SVN Book 中的更多信息。

其次,您似乎在解决我认为不太好的冲突之前取消了二进制文件的版本化......我会这样做:

  • 在主干和 dev 分支中都存在二进制文件,合并更改
  • 你会在这些二进制文件上遇到冲突
  • 您解决了冲突(使用分支或主干的版本)
  • 然后从存储库中删除这些二进制文件(如果需要,将它们添加到忽略列表中)
  • 不要忘记svn commit删除

要回答您的最后三个问题:

1-如何更新主干使其包含最新版本?

您必须使用这样的命令将您的开发分支合并到您的主干中(假设您有主干的工作副本,并且该分支是在修订版 25 中创建的):

svn merge -r 25:HEAD http://your/repos/branches/my-branch

2-无论如何在构建解决方案时如何忽略由 Visual Studio 创建的 dll?

您不应该先添加这些文件。但无论如何,您可以将它们从您的 SVN 存储库中删除,它们将在您的下一次构建期间再次创建。您可以查看此问题以获取有关此的更多信息。

3-有一个第三方 dll 未构建,应包含在存储库中,但文件可能保持不变,我应该如何处理?

您可以像处理任何其他类型的文件一样将二进制文件添加到您的存储库中。如果 SVN 没有正确检测到您的文件是二进制文件,您可以使用此处svn propset解释的命令强制它。

于 2012-10-04T08:01:28.977 回答