Version control 是否有一种方法可以使“获取TFS中的最新版本”的行为类似于获取最新签入的特定版本

Version control 是否有一种方法可以使“获取TFS中的最新版本”的行为类似于获取最新签入的特定版本,version-control,visual-studio-2012,Version Control,Visual Studio 2012,每当我在Visual Studio中从TFS 2012获取最新版本时。它并不是最新的。它所做的是更新解决方案文件,这样我的队友添加的新内容就会在中显示一个警告标记,表示它不在那里 我不是叫TFS帮我拿的吗 显然,TFS让生活变得过于复杂,因为它基于一些奇怪的规则做出决定,我不知道我在要求什么,并且会给我它认为正确的东西 据我所知,如果该文件已被修改,因为我最后一次从服务器得到它得到它!它已经改变了。为什么会有消息来源 无论如何,我想知道是否有一种方法可以添加一个上下文菜单命令,该命令将触发一个获

每当我在Visual Studio中从TFS 2012获取最新版本时。它并不是最新的。它所做的是更新解决方案文件,这样我的队友添加的新内容就会在中显示一个警告标记,表示它不在那里

我不是叫TFS帮我拿的吗

显然,TFS让生活变得过于复杂,因为它基于一些奇怪的规则做出决定,我不知道我在要求什么,并且会给我它认为正确的东西

据我所知,如果该文件已被修改,因为我最后一次从服务器得到它得到它!它已经改变了。为什么会有消息来源

无论如何,我想知道是否有一种方法可以添加一个上下文菜单命令,该命令将触发一个
获取最新签入的特定版本


它将为我节省一些失败的构建和单击,并且通常会被TFS中的源代码管理系统激怒。

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

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

至于为什么会出现这种情况,我只能推测:VisualStudio解决方案不强制执行严格的文件系统布局,人们可以将文件系统中的任何位置的项放入解决方案中。因此,当您选择在解决方案上获取最新版本时,TFS提供程序将标识解决方案中也在TFS中的每个项目,并在这些路径上执行获取最新版本。通过这样做,新项目将被排除(因为它们的路径没有在get中指定)

如果要获取路径本身或包含路径的文件夹的最新信息,则会包含新项目,但是,在获取解决方案文件之前,您无法知道这些新项目的位置


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

我知道这个问题已经过了“按日期销售”的阶段。但获取具体的最新信息主要解决了这方面的问题

您应该
Righ单击您的sln文件
转到
SourceControl
单击
获取特定版本


确保选中两个复选框,覆盖所有内容。

此选项内置于此处:右键单击->高级->获取特定版本


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

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

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

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


这同样难以理解。这个人是谁?好消息是,我们可以从其他人的错误或其他人无法理解的错误中学习。

你知道为什么两个名为“获取最新信息”的命令会做不同的事情吗?我真的很想知道这种沮丧的原因:)请参见上面编辑的答案。我不能(完全)权威地谈论这一点,因为我正在开发Eclipse插件,由于Java要求文件名和类名匹配,它确实有一个很好的项目布局。Get Latest命令将获取您单击的内容及其所有子项的最新版本。您可以获取文件、文件夹或分支的最新信息。因此,文件树越高,得到的文件越多。原因很简单,有时您可能只想获取单个文件的最新版本。@aclear16:您所说的关于文件和文件夹的内容是正确的。但解决方案是VisualStudio中的逻辑概念,它不会直接映射到TFS中的概念。(当然,它会映射到一个
.sln
文件,但是当您在解决方案上单击“获取最新信息”时,仅获取
.sln
将是一种糟糕的体验。)当您在解决方案上执行获取最新信息时,它会尝试将其映射到受影响的TFS文件/文件夹。但是,如果其他人在包含您的
.sln
的目录中添加依赖资源,则无法知道。我没有否决您的投票,但我认为您可能被否决,因为我的问题明确排除了这一答案。在我说“无论如何,我想知道是否有一种方法可以添加一个上下文菜单命令,该命令将触发最新签入的Get-Specific版本?”的地方,答案是否定的。顺便说一句,你没有读这个问题。我想在一次点击中完成它。不要打开获取特定版本对话框,选择一个版本并选中复选框。我想右键单击并从服务器获取最新版本。它绝对会获取最新版本。通常,在合并后、向项目添加新文件后、签入挂起的更改并进行本地更改后,TFS不会使用服务器版本更新(覆盖)我的本地版本。进行文件比较甚至会显示本地版本与服务器版本之间的差异。这是一连串的事件;没有分支(然后合并)的新项目或创建后没有太大变化的项目不会发生这种情况。网上有很多关于这些违规行为的信息。我建议更多地使用高级功能和一些博客搜索。如果你有问题,如果你提交一个连接错误,发布一个stackoverflow问题,或者联系开发人员,这将是很有帮助的。然后我们可以解决您的特定问题。