在使用SVN时更改Visual Studio中的文件夹名称

12

我正在使用VS2008/VS2010与Resharper 5、TortoiseSVN 1.6.8.19260-x64和AnkhSVN 2.1.8420.8。我在Visual Studio中进行的大部分操作都能够正确地反映在SVN中,但是,在项目中重命名文件夹可能会导致提交更改时出现问题。而且,所有位于已重命名文件夹下的C#源文件中的命名空间都需要更新以反映名称更改。

如何最好地重命名主项目文件夹或任何子文件夹,并确保没有与SVN相关的问题?应该在Visual Studio之外完成吗?

更新所有命名空间更改的最佳方法是什么?是否只有搜索/替换的方法?

关于文件夹名称及其内容,是否存在任何最佳实践?

4个回答

5
使用TortoiseSVN在Windows资源管理器中,通过菜单对所需文件夹进行重命名。Visual Studio项目将检测到磁盘上的更改并要求您重新加载。
您还可以在Visual Studio中排除项目,然后重命名并重新包含新路径。
编辑:根据下面的@Sander Rijken,AnkhSVN跟踪重命名并确保正确地在svn工作副本中注册重命名。
如果没有安装AnkhSVN和TortoiseSVN,则此方法无法使用,您必须按照上述方式操作。

2
在 Visual Studio 之外重命名意味着您稍后必须修复项目文件,可以通过排除和引入新文件或手动编辑来完成。在 Visual Studio 中重命名时,这是一个一步完成的过程。 - Sander Rijken
@Sander,但在Visual Studio中重命名不会告诉TortoiseSVN重命名的情况,这会导致TortoiseSVN出现很多问题。 - Ian Ringrose
2
不,问题是关于使用AnkhSVN。AnkhSVN追踪重命名并确保重命名在svn工作副本中正确注册。 - Sander Rijken
1
@Sander:我已经在上面添加了这些信息。如果可以的话,我本来会删除它的,但是由于它是被接受的答案,所以我不能删除。 - Brian R. Bondy

3
当使用AnkhSvn运行Visual Studio时,您应该能够重命名文件夹。此外,当使用重构工具如Resharper根据新文件夹名称更改命名空间时,一切都按预期进行。

2
我确实想知道为什么这篇文章被踩了。这个问题是关于使用Resharper、AnkhSVN和TortoiseSVN组合的。通过该组合,在Visual Studio内更名,无论是否使用resharper,都是最好的方法,因为它会同时更改实际文件夹、项目文件和Subversion工作副本。 - Sander Rijken

3

Agent SVN插件实现了MS-SCCI接口,使其能够与Visual Studio集成。

由于MS-SCCI定义了文件重命名操作,这意味着Agent SVN可以在IDE内部执行文件重命名操作,任何实现MS-SCCI的插件也应该如此。


0
通常在需要重命名文件夹时,我会先使用TortoiseSVN重命名文件夹,然后在VS中排除/包含该文件夹,最后重命名所有的命名空间(使用Resharper只需逐个文件进行操作,并在命名空间指令上按Alt+Enter进行适当的重命名)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接