3

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

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

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

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

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

所以,我的问题:

更改目录结构的更好工具是 Ankh 还是 Tortoise?

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

4

4 回答 4

6

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

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

至于使用哪个 svn 客户端 - 我建议使用 Tortoise 进行任何不纯粹在单个 VS 解决方案中的更改,并且您组织代码的方式向我表明您正在谈论的更改与多个解决方案有关。因此,使用乌龟。

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

于 2009-12-11T17:34:04.340 回答
6

我发现使用 TortoiseSVN 更容易进行文件系统级别的重组。但是,有一个问题:

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

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

如果您只是随意移动文件而不执行上述操作,TortoiseSVN 会非常困惑并按照您的描述做出反应。

于 2009-12-11T17:45:17.970 回答
1

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

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

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

于 2009-12-11T17:40:55.747 回答
-2

乌龟 !!我在使用 AnkhSVN + VS2008 时遇到了问题。我通常在执行“提交”之前执行“更新”

于 2009-12-11T17:35:46.753 回答