代码之家  ›  专栏  ›  技术社区  ›  David

无法使用乌龟提交文件夹

  •  0
  • David  · 技术社区  · 14 年前

    在一个涉及创建新项目和在它们之间移动文件的大型重构之后,提交一个已移动的文件夹(及其内容)时遇到了一个大问题。

    文件夹当前显示为已修改(即带感叹号的红色套印格式)。当我试图提交它时,我被告知我需要首先更新工作副本。

    当我尝试更新它时,我得到“目标路径”[位置]“不存在”。令人担忧的是,这是在我移动文件夹之前文件夹在结构中的位置。它似乎试图从错误的位置更新它们。

    所以,我陷入了“不能提交,不能更新”的循环,我不知道如何摆脱它。

    我想一定是我把文件夹(包括里面的.svn文件夹)复制到了新的位置。.svn文件夹中的Subversion文件仍然认为,在与存储库交谈时,它需要连接到旧位置。

    有人能帮忙吗?

    谢谢

    戴维

    3 回复  |  直到 14 年前
        1
  •  0
  •   krico    14 年前

    有时强制更新有效

    svn up --force .
    

    在命令行上

        2
  •  0
  •   David    14 年前

    在这种情况下,我通过删除文件夹中的.svn文件夹来解决这个问题。这意味着它们就像乌龟的新文件夹一样,我可以提交它们。

        3
  •  0
  •   Stuart Lange    14 年前

    很高兴你能解决这个问题。我猜在删除“.svn”文件夹后,您必须再次“svn添加”该文件夹。这有一个不幸的副作用,那就是把这些档案的历史销毁了。

    将来,当用乌龟移动物体时,你应该记住 most forgotten feature :右键单击拖动。当使用Tortoise移动受版本控制的文件和文件夹时,您应该养成右键单击拖动的习惯,因为右键拖动允许您“SVN移动”、“SVN复制”或“SVN添加”正在拖动的文件/文件夹。与Tortoise(以及所有SVN客户机)合作的关键是记住,标准的文件系统操作将混淆SVN的精髓。对文件执行的任何操作都必须通过相应的“svn”操作完成,以便svn知道跟踪更改并保留文件/文件夹的历史记录。

    如果您在一个IDE中工作,我建议您在这个IDE中使用一个SVN插件,因为它们会很好地为您处理这些问题。在兰德女士那里 VisualSVN 在爪哇土地上 Subversive .