我正在尝试使用VirtualSVN Server,TortoiseSVN和AnkhSVN,对我来说一切都还很新。
我已经向SVN添加了Visual Studio 2010(VB)解决方案。完成后,trunk包含版本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 - Unversion并添加到忽略列表 - * .dll”(之后也是* .exe)和其他一些文件)。
现在我留下了一个解决方案目录树,其中包含许多黄色感叹号以及删除的标记。
我的问题是:
答案 0 :(得分:3)
首先,要删除您拥有的已删除标记 em>,您应首先提交您的更改(在这种情况下,它们是删除)。有关此in the SVN Book的更多信息。
其次,在解决我认为不太好的冲突之前,你似乎已经解析了你的二进制文件......我会这样做:
svn commit
您的删除回答你最后的三个问题:
1 - 如何更新主干,使其包含最新版本?
您必须使用这样的命令将您的开发分支合并到您的主干中(假设您有一个主干的工作副本,并且分支是在第25版中创建的):
svn merge -r 25:HEAD http://your/repos/branches/my-branch
2 - 在构建解决方案时,如何忽略Visual Studio正在创建的dll?
您不应该先添加这些文件。但无论如何,您可以从SVN仓库中删除它们,并在下次构建时再次创建它们。您可以查看this question以获取有关此内容的更多信息。
3 - 有一个第三方dll没有构建,应该包含在存储库中,但文件可能保持不变,我应该如何处理?
您可以像对待任何其他类型的文件一样将二进制文件添加到存储库。如果SVN未正确检测到您的文件是二进制文件,则可以使用svn propset
命令强制执行该文件,如here所述。