重命名文件的问题是,如果您想利用Visual Studio重构,您确实需要从Visual Studio内部进行重构。
但是大多数(并非所有*)版本控制系统也希望成为重命名的人。
一种解决方案是使用集成的源代码控制,但这并不总是可用,并且在某些情况下非常笨重。
我个人更愿意在Visual Studio之外单独使用源代码控制,但我不知道如何管理这个文件重命名问题。
那么,对于那些使用Visual Studio的人,你使用哪个源代码控制?您是否使用VS集成(哪一个?),否则,您如何解决此重命名问题?
(* git非常聪明,可以自行解决)
答案 0 :(得分:5)
我使用SVN(TortiseSVN作为客户端)并大量使用提交对话框中的Repair Move命令。这允许我在VS中重命名文件并在我准备提交保留版本历史记录时解析重命名。
就像你一样使用VS集成,我发现所有VS集成都很笨重而且不使用它。
答案 1 :(得分:2)
mercurial通常更喜欢通过hg rename
进行重命名,但是它也可以使用hg addremove -s 100
来检测来自外部源的重命名(如果要将重命名与更改匹配,则可以检测小于100)你可以让VS做重命名,并通过addremove获得mercurial。
答案 2 :(得分:1)
我们使用SVN(确切地说是TortoiseSVN),我总是对重命名问题感到困扰。我发现最简单的解决方案是从项目中删除文件,通过TSVN重命名它们并将它们添加回项目。您必须手动更新重命名的头文件的包含,但使用find& replace。
相对容易答案 3 :(得分:1)
我们使用Team Foundation Server,它没有任何问题。我还发现,使用完全集成的客户端已经改善了我的工作流程,因为我不需要在应用程序之间切换只是为了完成琐碎的任务。
答案 4 :(得分:1)
我们开发“Plastic SCM”和Visual Studio Package supports move operations。但我明白你的观点,我越来越觉得没有插件/软件包,然后让版本控制在幕后工作,只需检测发生的事情而不必“插入”IDE。事实上,我们正在为下一个版本而努力......
答案 5 :(得分:0)
除了上述建议之外,对于Visual Studio 2008,我发现在对VS中重命名的任何文件进行所有全局更改后,包括右键单击文件并重命名,以及全局搜索和替换所有字符串,用新文件名替换旧文件名,如果文件是初始启动文件,则必须右键单击并选择它作为“设置为默认页面”。否则你很可能得到“无法找到资源”。运行时出错。