TFS:如何在加载解决方案时检测更改的文件?

8

我对使用Visual Studio 2010与TFS的集成还不熟悉,现在我遇到了一个问题需要解决。

实际上,当我打开一个解决方案时,如何仅通过“解决方案资源管理器”来检测自上次登录以来哪个文件已更改?

如果我查看源代码控制资源管理器最新列,我可以发现更改的文件,但这并不是很直观。

我附上一张图片以便更好地理解。

alt text http://img37.imageshack.us/img37/9308/mainmicrosoftvisualstud.jpg

我想为frmAbout.vb(在本例中)关联到“解决方案资源管理器”中的项目,提供不同的图标。您有任何想法如何实现此行为?或者对于Visual Studio 2010有一些替代方案(插件)吗?

编辑:我们是一个由3个人组成的小团队,我们需要对每行更改的代码进行对齐,因为我们是可互换的。因此,对于我们来说,拥有清晰可见的图标将非常有帮助。

编辑2:悬赏时间已过,但没有真正的解决方案。如果您知道实现此行为的插件,请让我知道。如果我有空闲时间,我会尝试编写它。


你是否已经成功解决了这个问题?还需要帮助吗? - jcolebrand
不,我们还没有解决它。我们正在使用源代码控制资源管理器,但它并不是很用户友好。我们更希望在解决方案树上直接显示指示,但不知道如何实现这个结果。 - Drake
5个回答

7
首先,仅检查文件是否已更新是不够的。还需要考虑服务器上添加了文件但您尚未拥有这些文件的情况...同样,在服务器上删除文件但本地工作区尚未删除该文件的情况也要考虑到。
幸运的是,所有这些都内置在VS2010的Team Explorer中。你只需要:
1. 转到源代码控制资源管理器 2. 在左侧树形面板上右键单击解决方案的根文件夹(或任何文件夹),然后选择“比较...” 3. 选择您的比较选项(默认选项对于您想要执行的操作有效) 它会运行完整的比较。完成后,将显示一个“文件夹差异”窗口,其中显示服务器和您的工作区不同的所有情况(这些将以红色突出显示) 4. 右键单击任何不同步的项目(或整个文件夹)并选择“调和...”;此时,您可以选择如何解决差异。
大概就是这样。希望这有所帮助。

这很有帮助,但如果可能的话,我仍然希望在解决方案资源管理器中直接突出显示。如果不行,我想我们就得做出调整了。 - Drake
你可以考虑编写自己的VS插件来实现这个功能。 - Warren Rumak
可能我应该自己写,但很不幸我没有VS插件开发经验。我会尽快在有空的时候尝试。 - Drake

0

我在这里提供的是基于我对TFS和Visual Studio 2008的了解,但我认为在这个领域没有太多变化。(如果我错了,请随时纠正我;)

  • 在解决方案资源管理器中,您可以看到文件是否已签出。
  • 在源代码控制资源管理器中,您可以查看文件的最新版本。

这两者完全不同。TFS使用“更改集”,这是一组您在本地使用签出文件进行更改的更改。完成编辑后,您一次性检入所有更改。多个团队成员可以签出同一文件。如果发生这种情况,则在检入文件时合并更改。

除非您签出文件或使用“获取最新版本”,否则您不会自动在本地接收文件的最新版本。

据我所知,在解决方案资源管理器中没有办法指示您是否拥有文件的最新版本。

希望这可以帮助您。


默认情况下,当您检出文件时,甚至不会获得最新版本。您需要在“工具”->“选项”->“源代码控制”->“Visual Studio Team Foundation Server”中更改该设置:在检出时获取项目的最新版本。 - Ryan
是的,这样做是为了防止“污染”您的本地更改集。 (可能最新版本的已检入代码对代码树中的其他更改有一些依赖关系,而您尚未拥有它们。) - Jeroen Landheer

0

我的问题是“你为什么在意?”如果你在一个团队环境中工作,其中有多个人对源代码进行更改,请记住频繁地执行向前集成到你的工作区。

我们现在正在这样做,我们的标准是在开始工作之前递归地对解决方案执行“获取最新版本”。如果有任何冲突,你将需要合并它们。否则,你就拥有了最新的版本。


我们是一个由三个人组成的小团队,因为我们可以互相替代,所以我们需要对每一行代码的更改保持一致。因此,对于我们来说,拥有清晰可见的图标会很有帮助。 - Drake
如果您在环境之外的文件系统中修改了文件,则这些更改在从签出状态的角度来看可能对VS和TFS不可见。如果您失去与TFS服务器的连接并重新连接(Go Online菜单选项),则可以看到此操作。我正在努力尝试在需要时激活该功能。 - dviljoen

0

为什么你不使用一个有插件可以集成到VS的源代码控制呢?根据平台(SVN、git、Hg、TFS),应该有很多插件可以告诉你是否有变化。在这些情况下,有什么问题没有成功呢?


我们正在评估TFS2010,因为它包含在我们的MSDN订阅中。到目前为止它看起来不错,但它缺少一个小功能,这会帮助我们很多。 - Drake

0

不确定这是否有用,但是您可以尝试另一种解决问题的方法。 首先,在“工具” -> “选项” -> “源代码控制” -> “环境”页面中设置“打开项目或解决方案时获取所有内容”的选项。这可以确保在打开解决方案后拥有最新版本。 其次,在“获取所有内容”操作之后,检查“输出”窗口。选择“显示来自” = “源代码控制”。您将以便捷的列表形式看到所有更改的文件。


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