我是Ankh和Tortoise的新用户。目前正在增加VS2008应用程序套件,该应用程序套件将具有多个.exe文件,但具有许多通用代码。
目前,我们通过将源文件放在“共享”文件夹树中,并在需要编译这些文件的所有VS2008项目中使用“添加为链接”来共享.exe项目之间的代码。 (我们从VisualSVN开始,但转而使用Ankh,因为它更好地处理了链接文件。)
我们遇到的问题是我们仍在积极修改共享文件夹树的结构 - 添加新文件夹,并在项目发展过程中将现有文件移入其中。
主要使用Tortoise来改变目录结构,但一直遇到问题 - 似乎与存储库不同步。我们收到错误消息,指出文件丢失或树冲突。
我怀疑问题可能是我们有时会以错误的顺序执行操作 - 例如,在移动目录然后提交之前伪造进行更新 - 但我不确定。
所以,我的问题:
哪个是更改目录结构的更好工具 - Ankh或Tortoise?
对于首选工具,必须执行哪些步骤以及按什么顺序执行?
答案 0 :(得分:6)
将所有共享代码编译到DLL然后从其他项目中引用它会不会更容易?
问题是你强烈地将共享文件夹的目录结构耦合到你的所有项目 - 这必然会给你带来麻烦,特别是如果它发生了变化。
至于使用哪个svn客户端 - 我建议使用Tortoise进行任何不完全属于单个VS解决方案的更改,并且您编写代码的方式告诉我您所讨论的更改与多个相关解决方案。因此,请使用Tortoise。
在Tortoise中轻松移动内容的关键是使用右键单击拖动功能,它可以进行svn感知移动。
答案 1 :(得分:6)
使用TortoiseSVN,我发现文件系统级重组更容易。然而,有一个问题:
使用TortoiseSVN在文件系统上移动文件时:
如果您只是在不执行上述操作的情况下移动文件,TortoiseSVN会非常困惑并在您描述时做出反应。
答案 2 :(得分:1)
重新组织目录结构实际上非常棘手,它既不是Tortoise也不是Ankh问题,它只是Subversion问题。
问题是SVN理解添加/删除但不“移动”或“重命名”。所以你有一个文件夹里面有相同的隐藏.svn元数据,但现在移到了另一个地方,这让SVN感到困惑。
更新:请参阅antik的解决方案,这比手工处理元数据更好。
答案 3 :(得分:-2)
乌龟!!我遇到过AnkhSVN + VS2008的问题。在做“提交”之前,我通常会做一个“更新”