代码之家  ›  专栏  ›  技术社区  ›  Tom Bushell

Ankhsvn和/或Tortoissesvn-建议如何更改目录结构?

  •  3
  • Tom Bushell  · 技术社区  · 15 年前

    我是Ankh和Tortoise的新用户。目前正在升级一个VS2008应用程序套件,它将有多个.exe文件,但有许多通用代码。

    目前,我们在.exe项目之间共享代码,方法是将源文件放在“共享”文件夹树中,并在所有需要编译这些文件的VS2008项目中使用“添加为链接”。(我们从VisualSVN开始,但转到了Ankh,因为它处理链接文件的效果更好。)

    我们遇到的问题是,我们仍然在积极地修改共享文件夹树的结构——添加新文件夹,并随着项目的发展将现有文件移到其中。

    大多数时候都是用乌龟来改变目录结构,但一直遇到问题——似乎与存储库不同步。我们得到错误消息,说文件丢失,或者关于树冲突。

    我怀疑这个问题可能是我们有时做错事的顺序-例如,在移动目录并提交之前忘记做更新-但我不确定。

    所以,我的问题是:

    哪种工具更适合改变目录结构-安卡还是乌龟?

    对于首选工具,必须执行哪些步骤以及顺序?

    4 回复  |  直到 15 年前
        1
  •  6
  •   antik    15 年前

    我发现使用Tortoissesvn进行文件系统级重组更容易。但是,有一个陷阱:

    使用Tortoissesvn移动文件系统上的文件时:

    • 右键单击文件
    • 将其拖到新目的地
    • 释放鼠标右键
    • 在显示的菜单中选择“SVN MOVE”

    如果您只是随意移动文件而不进行上述操作,Tortoissesvn会非常困惑,并在描述时做出反应。

        2
  •  6
  •   ctford    15 年前

    将所有共享代码编译到一个dll,然后引用其他项目中的代码,难道不是更容易吗?

    问题是,您将共享文件夹的目录结构与所有项目紧密耦合在一起,这必然会给您带来麻烦,尤其是当它发生更改时。

    关于使用哪一个SVN客户机-我建议使用Tortoise进行任何不完全在单个VS解决方案中的更改,并且您组织代码的方式向我建议您所谈论的更改与多个解决方案相关。因此,使用乌龟。

    在乌龟中轻松移动物体的关键是使用 右键单击拖动特征 ,执行支持SVN的移动。

        3
  •  1
  •   Aaronaught    15 年前

    实际上,重新组织目录结构是相当困难的,它既不是乌龟,也不是ankh问题,它只是一个颠覆性的问题。

    问题是SVN理解添加/删除,但不理解“移动”或“重命名”。因此,您有一个文件夹,其中包含相同的隐藏.svn元数据,但现在移到了另一个地方,这会混淆svn。

    更新: 看看安提克的解决方案,这比手工处理元数据要好。

        4
  •  -2
  •   ram    15 年前

    乌龟!!我和AnkhsVN+VS2008有问题。我通常在执行“提交”之前执行“更新”

    推荐文章