AnkhSVN和/或TortoiseSVN - 改变目录结构的推荐方法是什么?

时间:2009-12-11 17:30:05

标签: svn tortoisesvn directory-structure ankhsvn

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

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

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

主要使用Tortoise来改变目录结构,但一直遇到问题 - 似乎与存储库不同步。我们收到错误消息,指出文件丢失或树冲突。

我怀疑问题可能是我们有时会以错误的顺序执行操作 - 例如,在移动目录然后提交之前伪造进行更新 - 但我不确定。

所以,我的问题:

哪个是更改目录结构的更好工具 - Ankh或Tortoise?

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

4 个答案:

答案 0 :(得分:6)

将所有共享代码编译到DLL然后从其他项目中引用它会不会更容易?

问题是你强烈地将共享文件夹的目录结构耦合到你的所有项目 - 这必然会给你带来麻烦,特别是如果它发生了变化。

至于使用哪个svn客户端 - 我建议使用Tortoise进行任何不完全属于单个VS解决方案的更改,并且您编写代码的方式告诉我您所讨论的更改与多个相关解决方案。因此,请使用Tortoise。

在Tortoise中轻松移动内容的关键是使用右键单击拖动功能,它可以进行svn感知移动。

答案 1 :(得分:6)

使用TortoiseSVN,我发现文件系统级重组更容易。然而,有一个问题:

使用TortoiseSVN在文件系统上移动文件时:

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

如果您只是在不执行上述操作的情况下移动文件,TortoiseSVN会非常困惑并在您描述时做出反应。

答案 2 :(得分:1)

重新组织目录结构实际上非常棘手,它既不是Tortoise也不是Ankh问题,它只是Subversion问题。

问题是SVN理解添加/删除但不“移动”或“重命名”。所以你有一个文件夹里面有相同的隐藏.svn元数据,但现在移到了另一个地方,这让SVN感到困惑。

更新:请参阅antik的解决方案,这比手工处理元数据更好。

答案 3 :(得分:-2)

乌龟!!我遇到过AnkhSVN + VS2008的问题。在做“提交”之前,我通常会做一个“更新”