【问题标题】:Is there a way to make Get Latest in TFS behave like Get Specific Version of the latest checkin有没有办法让 Get Latest in TFS 表现得像 Get Specific Version of the latest checkin
【发布时间】:2013-12-03 05:30:44
【问题描述】:

每当我在 Visual Studio 中的 TFS 2012 中 Get Latest 时。它并没有真正得到最新的。它所做的是更新解决方案文件,以便我的队友添加的新内容显示在其中并带有警告标记,因此说它不存在。

我不只是让 TFS 帮我拿它!

显然,TFS 会根据一些我不知道自己要求什么的奇怪规则做出决定,从而使生活变得过于复杂,并且会给我它认为正确的东西。

就我而言,自从我上次从服务器获取文件以来,该文件是否已被修改过!它已经改变了。为什么会来源

无论如何,我想知道是否有一种方法可以添加一个上下文菜单命令来触发最新签入的Get Specific Version

它会为我节省一些失败的构建和点击次数,并且通常会被 TFS 中的源代码控制系统激怒。

【问题讨论】:

    标签: version-control visual-studio-2012


    【解决方案1】:

    当您在解决方案上选择获取最新时,它将获得最新的解决方案。它不会获取已添加到服务器解决方案中的新项目。

    相反,打开源代码管理资源管理器并在包含解决方案的文件夹上执行 Get Latest。这将获取所有内容,解决方案文件、新文件等。

    至于为什么会这样,我只能推测:Visual Studio 解决方案不强制执行严格的文件系统布局,并且可以将项目放在我的文件系统中的任何位置到解决方案中。因此,当您在解决方案上选择“获取最新”时,TFS 提供程序将识别您的解决方案中也在 TFS 中的每个项目,并在这些路径上执行“获取最新”。通过这样做,新项目将被排除在外(因为它们的路径未在 get 中指定。)

    如果您要对路径本身或包含它们的文件夹执行“获取最新”,则将包含新项目,但是在您已经了解这些新项目之前,您无法知道这些新项目在哪里完成了解决方案文件的获取。

    因此,如果您的解决方案设置为所有项目都包含在某个单一目录中(当然大多数都包含),那么最简单的方法就是使用从源代码管理资源管理器中获取最新信息。

    【讨论】:

    • 你知道为什么 2 个名为 Get Latest 的命令会做不同的事情吗?
    • 我真的很想知道这种沮丧的原因:)
    • 查看上面的编辑答案。我不能(完全)权威地谈论这个,因为我在 Eclipse 的插件上工作,由于文件名和类名匹配的 Java 要求,它确实具有很好的项目布局.
    • 他们没有做两件不同的事情。获取最新命令将获取您单击的任何内容及其所有子项的最新版本。您可以获取文件、文件夹或分支的最新信息。所以你去的文件树越高,你得到的越多。原因很简单,有时您可能只想获取单个文件的最新版本。
    • @aclear16:你所说的关于文件和文件夹是正确的。但是解决方案是 Visual Studio 中的一个逻辑概念,它不直接映射到 TFS 中的概念。 (好吧,它当然映射到 .sln 文件,但是当您在解决方案上单击“获取最新信息”时获得 .sln 将是一种糟糕的体验。)最新的解决方案,它尝试将其映射到受影响的 TFS 文件/文件夹。但是,如果其他人在包含您的 .sln 的目录中添加了依赖资源,则无法知道这一点。
    【解决方案2】:

    选项内置在这里:右键单击->高级->获取特定版本

    感谢http://hamidshahid.blogspot.co.uk/2012/12/get-specific-version-in-visual-studio.html

    【讨论】:

    • 您没有阅读问题。我想一键完成,不要打开获取特定版本对话框,选择一个版本并选中复选框。我想右键单击并从服务器获取最新版本。
    【解决方案3】:

    我知道这个问题已经过时了。但是,获取特定的最新信息基本上可以解决这里的问题。

    你应该Righ Click your sln File 转至SourceControl 点击Get Specific Version

    确保您select the two check boxes 覆盖所有内容。

    【讨论】:

    • 我没有否决你,但我认为你可能被否决了,因为我的问题明确排除了这个作为答案。我说“无论如何我想知道是否有一种方法可以添加上下文菜单命令来触发获取最新签入的特定版本?”答案是否定的。
    【解决方案4】:

    在 TFS 2012 中,右键单击项目名称,将鼠标悬停在“高级”上,然后单击“获取特定版本...”

    这个答案有点晚了,但对彼得来说,命令是不一样的。一个是“获取最新版本”,另一个是“获取特定版本...”。

    这里真正的问题是“获取最新版本”没有获取最新版本(奇怪,但确实如此)。

    从软件工程的角度来看,“为什么”很简单。一位项目负责人检查了这两个菜单选项的需求、分析、代码和测试,然后说:“好的!”。

    这同样难以理解。这个人是谁?好消息是,我们可以从别人的错误或其他难以理解的错误中吸取教训。

    【讨论】:

    • 绝对是最新版本。
    • 通常,在合并后、向项目添加新文件后、签入挂起的更改然后进行本地更改后,TFS 不会用服务器版本更新(覆盖)我的本地版本。进行文件比较甚至会显示我的本地版本与服务器版本的差异。这是一连串的事件;它不会发生在尚未分支(然后合并)的新项目或与其创建相比没有太大变化的项目中。网上有很多关于这些违规行为的流量。我建议更多地使用高级功能和一些博客搜索。
    • 如果您遇到问题,提交连接错误、发布 stackoverflow 问题或联系开发人员会很有帮助。然后我们可以解决您的特定问题。
    猜你喜欢
    • 2022-11-03
    • 2014-03-11
    • 1970-01-01
    • 2012-05-10
    • 2022-12-27
    • 2020-10-02
    • 2018-03-31
    • 1970-01-01
    • 2023-01-05
    相关资源
    最近更新 更多