【问题标题】:Renaming files: Visual Studio vs Version control重命名文件:Visual Studio 与版本控制
【发布时间】:2011-02-05 06:19:50
【问题描述】:

重命名文件的问题在于,如果您想利用 Visual Studio 重构,您确实需要从 Visual Studio 内部进行。

但大多数(不是全部*)版本控制系统也希望成为重命名系统。

一种解决方案是使用集成源代码控制,但这并不总是可用的,而且在某些情况下非常笨拙。

我个人更愿意在 Visual Studio 之外单独使用源代码管理,但我不确定如何管理文件重命名这个问题。

那么,对于那些使用 Visual Studio 的人,您使用哪个源代码控制?您是否使用 VS 集成(哪个?),否则,您如何解决此重命名问题?

(* git 足够聪明,可以自己解决)

【问题讨论】:

    标签: visual-studio version-control renaming


    【解决方案1】:

    我们使用 SVN(确切地说是 TortoiseSVN),我总是为重命名问题而烦恼。我发现的最简单的解决方案是从项目中删除文件,通过 TSVN 重命名它们并将它们添加回项目。您必须手动更新重命名的头文件的包含,但使用 find&replace 相对容易。

    【讨论】:

    • 从项目中删除文件会将其从该磁盘中删除。因此,您需要将其从项目中排除。我接下来要做的是:首先使用 VS 中的菜单 Refactor 重命名类,然后使用 SVN 重命名文件,然后 - 将新文件添加到项目并删除旧文件
    • 呸!无论哪种方式听起来都很可怕,尽管我认为@abatishchev 的解决方案听起来稍微好一些。
    • 如果您右键单击一个文件并选择“删除”,VS 会询问您是否要删除或删除该文件。如果选择删除,文件不会被删除。
    【解决方案2】:

    我们使用 Team Foundation Server,它可以正常工作。我还发现,转向使用完全集成的客户端改进了我的工作流程,因为我不需要为了完成琐碎的任务而在应用程序之间切换。

    【讨论】:

    • 谢谢。我想 TFS 与 VS 一起工作是不费吹灰之力的 :) 几年前,由于价格和安装痛苦,我将 TFS 从我的“潜力”列表中删除了。也许我应该再检查一下……
    • @Benjol 在下周一 VS2010 发布时检查 - 我的理解是您可以通过它获得 TFS。
    【解决方案3】:

    mercurial 通常更喜欢通过 hg rename 进行重命名,但它也可以使用 hg addremove -s 100 检测来自外部源的重命名(或者如果您想将重命名与更改匹配则小于 100),因此很明显您可以让 VS进行重命名并获得善变以赶上 addremove。

    【讨论】:

      【解决方案4】:

      我使用 SVN(TortiseSVN 作为客户端)并大量使用提交对话框中的Repair Move 命令。这允许我在 VS 中重命名文件,并在我准备好提交以保留版本历史记录时解决重命名问题。

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

      【讨论】:

      • 特别是作为 VS 集成(至少我上次使用它时),是面向 checkout-modify-checkin 的,并且越来越多的源代码控制工具是 get-modify-merge。
      • 哇,很高兴知道。我通常必须做更复杂的事情:从项目中删除,svn 重命名,添加回项目 shuffle。这意味着少了一步 - 我只需要等待更好的 VS 集成。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        我们开发“塑料单片机”和Visual Studio Package supports move operations。但我明白你的意思,我越来越接受没有插件/包的想法,然后让版本控制在幕后工作,只需检测发生的事情而不必“插入”到 IDE 中。事实上,我们正在为下一个版本开发它......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-12
          • 1970-01-01
          • 2010-11-23
          • 2021-02-06
          相关资源
          最近更新 更多