【问题标题】:Trouble with SVN and Filename 'changes'SVN 和文件名“更改”的问题
【发布时间】:2011-01-17 17:49:43
【问题描述】:

我在 Visual Studio 2010 中编程,使用 TortiseSVN 和 VisualSVN 作为我的客户端来连接到 SVN 存储库。

尽管总的来说,整个 SVN 的事情我经常遇到一些问题。不断出现的一件事是,如果我对文件进行更改 - 即文件名,或将它们移动到新文件夹等,我最终会与存储库发生各种冲突,它只会导致各种奇怪的错误。

我理解版本控制和签入/签出访问的重要性,但是你们大多数人会怎么处理这种事情呢?我的意思是,我已经尝试了整个“从 Subversion 中删除”,更改我的文件,然后是“添加到 Subversion”,但它似乎并没有很好地完成这项工作。这在处理 Web 项目时尤其令人沮丧,因为随着项目的发展和多面性,文件名可能会非常频繁地更改。

是否有任何标准的方法来处理这种事情,或者它只是一般的SVN缺陷之一?

【问题讨论】:

    标签: visual-studio-2010 tortoisesvn visualsvn


    【解决方案1】:

    首先我必须承认,在过去的几年里,我踩到了 SVN 提供的每一个陷阱。 但在 99% 的情况下,这是我的错。

    常见错误有:

    • 重命名文件并仅将 lowercase.txt 更改为 UPPERCASE.txt(仅限 Windows,为避免这种情况,请先将名称更改为 UPPERCASE1.txt,然后再重命名为 UPPERCASE.txt)
    • 使用资源管理器进行重命名/删除/移动操作(最好使用 Tortoises 内置方法
    • 交叉合并相关的冲突

    还有一些暂时想不起来了。

    我还没有使用visualsvn,但我认为它是建立在Tortoise 之上的。如果您使用 Visual Studio,我会推荐 ankhsvn http://ankhsvn.open.collab.net/,它可以很好地集成到 Visual Studio 中,并且可以捕获您可能犯的大多数错误(全部来自 IDE)。

    【讨论】:

      【解决方案2】:

      另一个提示:不要尝试在一次提交中移动/删除/重命名一大堆文件和目录。在颠覆服务器和客户端 v1.6(Ankhsvn 和 tortoise 都依赖于此)中至少有几个错误至少会破坏您的工作副本。多重提交方法将起作用(因此首先重命名、提交,然后移动一个文件夹、提交等)。

      【讨论】:

        【解决方案3】:

        Subversion 将文件名更改处理为删除和添加,这可能会有些问题。这只是 Subversion 的固有限制,也是我们中的一些人转而使用不同版本控制系统的部分原因。

        【讨论】:

        • 我看过 Git,但它太令人困惑了。我什至根本无法让它发挥作用。还有什么其他选择?
        • 我不太明白这里的反对意见。我认为这是对我提出的问题的完全合理的回答。
        • @Stacey:我个人使用 Mercurial,但我应该警告您,使用 Git 或 Mercurial 等版本控制系统确实需要考虑一些不同的事情,因为它们是分布式的而不是集中式的。但是有很多好处,所以我个人认为是值得的。 Joel Spolsky 的 hginit.com 是一个很好的入门指南
        • @Stacey:我还应该补充一点,我倾向于从命令行使用东西,但也有用于 Mercurial 的 TortoiseHg 等工具,还有用于 Visual Studio 的 Mercurial 集成(VisualHg 或 HgSccPackage)。我没有使用任何这些产品的经验,所以不要认为这是一种认可,我只是想你可能想知道。 (根据这个问题,还有 Git 与 Visual Studio 的集成:stackoverflow.com/questions/507343/using-git-with-visual-studio
        猜你喜欢
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多