重命名文件:Visual Studio vs 版本控制

12
重命名文件的问题在于,如果你想要利用 Visual Studio 重构,你真的需要从 Visual Studio 内部进行操作。但大多数(不是全部)版本控制系统也希望自己来执行重命名操作。
其中一个解决方案是使用集成源代码控制,但这并非总是可用的,在某些情况下可能非常麻烦。
我个人更喜欢在 Visual Studio 外部单独使用源代码控制,但我不确定如何处理文件重命名的问题。
因此,对于那些使用 Visual Studio 的人,你们使用哪种源代码控制?你们使用 VS 集成(哪一个?),另外,你们如何解决这个重命名问题?
(*git 聪明到可以自行解决此问题)
6个回答

5

我使用SVN(客户端为TortiseSVN)并经常使用提交对话框中的修复移动命令。这使我能够在VS中重命名文件,并在准备提交时解决重命名以保留版本历史记录。

至于使用VS集成,和你一样,我发现所有VS集成都很笨拙,因此不使用它。


特别是在 VS 集成方面(至少在我上次使用它时),它是基于检出-修改-签入的,而越来越多的源代码控制工具则是基于获取-修改-合并的。 - Benjol
哇,这太好了。我通常必须执行更复杂的操作:从项目中删除,svn 重命名,再添加回项目。这意味着少了一步 - 我只需要等待更好的 VS 集成。 - quamrana

2

Mercurial通常更喜欢通过hg rename进行重命名,但也可以使用hg addremove -s 100(如果要匹配带有更改的重命名,则可以少于100)从外部源检测重命名,因此您可以让VS执行重命名,并让Mercurial通过addremove跟进。


1
我们使用SVN(确切地说是TortoiseSVN),我总是被重命名问题所困扰。我找到的最简单的解决方案是将文件从项目中删除,通过TSVN重命名它们,然后将它们添加回项目中。你必须手动更新重命名头文件的包含关系,但使用查找和替换相对容易。

从项目中删除文件将会从磁盘中删除它。因此,您需要将其从项目中排除。我接下来的步骤是:首先使用VS菜单中的重构功能重命名类,然后使用SVN重命名文件,最后添加新文件到项目中并删除旧文件。 - abatishchev
呸!无论哪种方式都听起来很糟糕,不过我认为@abatishchev的解决方案听起来稍微好一些。 - Benjol
如果您右键单击文件并选择“移除”,Visual Studio会询问您是否要删除该文件。如果选择“移除”,则该文件不会被删除。 - erelender

1

我们使用Team Foundation Server,它运行良好。我还发现,转而使用完全集成的客户端改善了我的工作流程,因为我不需要在应用程序之间切换来执行琐碎的任务。


谢谢。我猜TFS和VS一起工作是易如反掌的 :) 几年前,我因为价格和安装问题将TFS从我的“潜在选择”列表中删除了。也许我应该再次检查一下... - Benjol
@Benjol 下周一查看VS2010发布情况 - 我的理解是它会附带TFS。 - Rowland Shaw

1
我们开发了"Plastic SCM"和Visual Studio插件支持移动操作。但我明白你的观点,我对于不使用插件/扩展包并让版本控制在幕后运行并简单地检测发生了什么的想法越来越舒服。实际上,我们正在为下一个版本进行相关工作...

0
除了上述建议外,对于Visual Studio 2008,我发现在VS内部重命名文件后,包括右键单击文件并重命名以及全局搜索和替换所有字符串,将旧文件名替换为新文件名等所有全局更改后,如果该文件是初始启动文件,则必须右键单击并选择“设置为默认页面”。否则,在运行时可能会出现“找不到资源”的错误。

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