如何在VS2010中快速有效地取消我的代码?可能吗?

Sim*_*ely 2 .net c# tfs visual-studio-2010 visual-studio

我最近读到了搁架,并认为这是一个非常有用的概念.所以,下次有人带着我的应用程序中的错误来找我时,我搁置了我正在做的大量工作,修复了错误(对类进行了~30/40更改并进行了一些重构)并检查了修复码.

我现在想要取消我正在处理的代码,但保留我所做的更改.问题是,我对服务器上的文件进行了这些大量更改,这些更改尚未进入搁置.

我能在这做什么?似乎需要花费数小时/天才能再次合并所有内容.我知道Eclipse有一个很棒的功能,您可以比较两个文件,每个更改决定您是在服务器上使用该版本还是本地版本.我可以选择搁架中的版本或本地版本的东西是完美的.

有没有什么可以让我的生活更轻松,或者我注定要浏览搁置集,在每个冲突文件中,查看服务器版本,查看本地版本,将本地版本的部分复制到记事本文件中,将它们复制到服务器版本......等等.这似乎是一个可怕的混乱.

谁能帮我吗 ?

Edw*_*son 6

你应该不会被要求选择只有服务器版本或本地版本.您应该能够使用您习惯的3向合并工具来解决冲突.

听起来你在这里遵循推荐的做法:

  • 如果您有一些文件,让我们说它是最新的版本2,并且您开始编辑它,您将对该文件进行挂起更改.
  • 当您搁置该文件(撤消挂起的更改)时,您将返回版本2,没有挂起的更改.
  • 如果您编辑该文件并将其签入,则服务器将处于新版本(假设它是版本3)
  • 如果您当时要取消搁置现有的搁置集,那么您的更改将再次针对版本2,这意味着当您的更改与最新版本挂钩时:

    Source Control Explorer

可以理解,这意味着你有冲突.当您执行Get Latest或Checkin时,您将能够解决这些冲突.这些应该显示在Visual Studio底部的视图中:

分辨率选项

如您所知,有服务器版本和保留本地版本的选项.但是你也应该有机会使用AutoMerge(如果更改可以自动修改,即你没有在服务器和本地文件中都有变化的文件区域)和Merge Changes In Merge Tool(这将是打开3向合并工具.)

如果选择合并工具中的合并更改,您将获得内置的3向合并工具:

三向合并工具

如果你不喜欢内置3路合并工具(我不喜欢在2010年包括一个,VS 2012包括很多更好的体验),你可以在任何3路合并工具插件在Visual Studio选项:

配置合并工具

如果完全缺少Merge In Merge Tool中的选项,则TFS可能认为您正在处理二进制文件.在TFS中,当文件被标记为二进制时(更准确地说,当"文件合并"设置为"已禁用"时),您将不会选择自动注释这些文件,或者将它们合并到合并工具中.这是一个优化,以避免在冲突期间下载两个额外的大型二进制文件副本,并避免尝试将它们塞进合并引擎.

您可以通过打开Team Explorer,右键单击Project Collection并选择Team Project Collection Settings> Source Control File Types来配置"不可合并"的文件类型...确保列出您正在使用的文件类型在此对话框中为"可合并":

文件类型对话框