gpt4 book ai didi

visual-studio - 由于二进制文件导致SVN合并冲突

转载 作者:行者123 更新时间:2023-12-04 05:30:12 25 4
gpt4 key购买 nike

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

我已将 Visual Studio 2010 (VB) 解决方案添加到 SVN。完成此操作后,主干包含版本 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和其他一些文件)。

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

我的问题是:

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

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

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

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

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

    1-How do I update the trunk so it contains the latest version?



    您必须使用如下命令将开发分支合并到主干中(假设您有主干的工作副本,并且该分支是在修订版 25 中创建的):
    svn merge -r 25:HEAD http://your/repos/branches/my-branch

    2-How do I ignore dll's that are being created by Visual Studio when building the solution anyway?



    您不应该先添加这些文件。但无论如何,您可以将它们从您的 SVN 存储库中删除,它们将在您下次构建时再次创建。你可以看看 this question了解更多信息。

    3-There is one third party dll that is not build and should be included in the repository, but the file is likely to stay the same, how should I handle that?



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

    关于visual-studio - 由于二进制文件导致SVN合并冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722536/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com