【问题标题】:Visual Studio (with TFS) history other than solution explorer?解决方案资源管理器以外的 Visual Studio(带有 TFS)历史?
【发布时间】:2010-11-14 12:14:36
【问题描述】:

有没有人在解决方案资源管理器之外找到其他方法来获取文件的提交历史记录?历史如此停滞真的很烦人,因为这是一个非常有用的观点。我只是希望它会显示当前文件。这是用例。

我构建了我的巨大解决方案,在我从未听说过的文件中发现随机错误,并想知道谁有错。我可以通过从错误列表视图中双击来访问该文件,但是右键单击不起作用,导航视图->其他窗口->历史记录也不起作用。如果我什至可以获得历史记录视图,我只会从解决方案资源管理器中获得我右键单击的最后一个历史记录。 +1 也适用于任何有办法在解决方案中找到文件的人。

【问题讨论】:

  • 你尝试过 Team Explorer 吗?
  • 我在那个视图中环顾四周,是的。是否有您正在考虑的特定导航路径?如果您希望使用源代码控制-> 文件,那对我没有帮助,因为我也不知道该文件存在的位置。

标签: visual-studio visual-studio-2008 tfs


【解决方案1】:

双击错误信息打开文件。然后 File > Source Control > Annotate 将修订列表放在左侧。然后,您可以单击修订号以获取详细信息。

【讨论】:

  • 嗯,我似乎找不到“注释”选项,但很高兴知道该导航路径。
  • 确保您有 2008 SP1 以便 Annotate 可用。
  • 找到了!这是一个非常巧妙的功能,我想从一开始就知道。谢谢你启发我。
  • 我找到了 Annotate,它提供了对文件所做更改的真实简洁视图。这比我所希望的要多。谢谢你启发我。我的问题的答案是错误列表有一个“项目”列,显示文件的项目路径,这有助于我找到解决方案中的某些内容。
  • 我发现一个更好的答案是 TFS 工具栏中有一个历史记录按钮,它确实有效!
【解决方案2】:

我会 grep 构建日志并将输出通过管道传输到 TFS powershell 工具,但我是一个命令行类型的人。如果你想在 VS 中工作,我认为没有什么比双击错误工具窗口中的行更好的了。除了打开文件之外,这应该会自动展开所需的任何项目和子文件夹,以便在解决方案资源管理器中可以单击该文件(包括右键单击 -> 历史记录)。

除了源代码控制集成之外,这是在活动解决方案中的任何位置打开文件的最快方法:http://blogs.msdn.com/andrewarnottms/archive/2008/08/02/visual-studio-trick-to-quickly-find-any-file-in-solution.aspx

编辑:这是一个 quick-n-dirty 命令行,用于查找每个有构建错误的文件的最后 2 次更改。

$regex = [regex] "(?<filename>\S+\.cs).*error"
msbuild | %{ $regex.Matches($_) } | %{ $_.groups["filename"].value } | select -unique | %{ tfhist $_ -stop 2 }

【讨论】:

  • VS 中是否有内置的 grep,对于具有未知路径的文件(或具有相关路径的文件)该命令是什么?我从未见过展开以在解决方案资源管理器中显示文件的行为。正如您所说,该链接很有用,但离题了。
  • Visual Studio 有一个 grep 功能,但它比它的构建系统还要糟糕。 (例如,它的正则表达式语法与 .Net BCL 不兼容!!)上面的示例(参见编辑)假设您是从 Powershell 构建的。 ----- 解决方案资源管理器为我展开,但如果没有,您可以随时使用 File -> Source Control 菜单。 ----- 该链接与 TFS 无关,但确实直接回答了您的最后一个问题(“+1 也适用于任何有办法在解决方案中找到文件的人”)
  • 这些都是非常好的想法。 Powershell是Vista的东西对吗?我在工作中使用 XP。解决方案没有展开,我没有从文件菜单中看到历史选项。该链接提供了一种按名称打开文件的简单方法,但我仍然不知道该文件可能位于哪个项目和文件夹中。
  • Powershell 可以安装在 XP SP2 及以上版本上。 ---- 使用命令行窗口打开文件不需要您知道它在哪个项目中。只需开始输入名称即可。
  • 我想我知道为什么解决方案资源管理器没有为您扩展。检查此设置:工具 -> 选项 -> 项目和解决方案 -> 常规 -> 在解决方案资源管理器中跟踪活动项目。对我来说,默认情况下会检查它,但如果我将其关闭,我会得到你描述的行为。我已将该设置添加到工具栏,因为我现在发现这两种模式都很有用。
猜你喜欢
  • 2016-04-30
  • 2015-03-03
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多