8

上面的链接没有回答这个问题......

我在 TFS 上遇到了一些问题,其中 Visual Studio 在本地机器上构建没问题,但是当我尝试在服务器上构建时,我得到了构建错误。这些错误与这个问题无关。

我遇到的问题是,为了修复错误,我必须手动编辑本地计算机上的一些文件,并且由于它们是手动编辑的,因此 TFS 没有检测到更改,因此它不会让我将更改集上传到可以解决那里问题的服务器。

我的第一个也是主要问题是:如何强制 TFS 将所有本地文件复制到服务器。有点像整体的反面:

转到查看/其他窗口/源代码管理资源管理器/右键单击相关项目/高级/获取特定版本/选中“覆盖所有文件...”/按确定。

哪个(可以说,因为根据我的经验,它并不总是能得到所有东西)从服务器获取完整的文件集到本地机器。

我厌倦了 TFS 上传部分文件集,然后当解决方案在本地删除,然后从服务器重新下载时,我必须从一些备份中提取丢失的文件和引用。如果它在开始时完全上传并且正确,我可能会减少这些问题。所以这是我的主要问题。如何强制 TFS 上传我的所有文件,无论它们是否已更改。

为了进一步解释我在使用 nuget 包管理器时遇到的问题。我禁用了“允许 NuGet 在构建期间下载丢失的包”选项。所以在本地我得到了实际的构建错误。是的,没错,构建错误。像这样...

项目 XXX:默认情况下禁用包还原。要给予同意,请打开 Visual Studio 选项对话框,单击包管理器节点并选中“允许 NuGet 在构建期间下载丢失的包”。您还可以通过将环境变量“EnableNuGetPackageRestore”设置为“true”来表示同意。

现在迫使我重新启用此选项以消除错误。我对此感到恼火,因为此类错误应作为警告显示,以免阻止构建。这非常令人失望,因此我对 NuGet 的看法很差。

无论如何,足够的咆哮,我重新启用了这个,不像我有选择。但是禁用此功能的版本会上传到服务器。现在我在服务器上收到此错误。我尝试重新启用它并进行检查,但 TFS 不允许我这样做。(警告...没有挂起的更改)。当然不是,它只是一个愚蠢的复选框。什么可能已经改变了。但是现在我在服务器上遇到了一个错误,我无法修复所有错误,因为 NuGet 的某个人没有将一些教导用于正确设计他们的警告(而不是通过导致错误来阻止构建)。

所以,再一次,我怎样才能强制 TFS 将我所有的文件,无论是更改还是未更改,逐字逐句传送到服务器。这样,当我在本地修复问题时,它“应该”也在服务器上修复它。或者至少,当我下次下载它时,我确信拥有整个文件集。

抱歉,如果这听起来我很消极,但我已经坚持了 5 天,它已经完全停止了开发,这让我和公司损失了很多钱。任何帮助将不胜感激。

4

4 回答 4

11

没有办法告诉 TFS 获取我文件系统中的所有内容。您需要做的是一个多步骤的过程。首先签出整个目录,这不会覆盖您的手动更改,但允许您重新签入并让它检测这些更改。其次,如果创建了任何新文件,您需要在根目录中添加并获取所有新添加。最后检查所有更改。真的应该这么简单。

于 2013-02-27T16:33:05.620 回答
0

如果您使用的是 TFS 2012,那么Local Workspaces对您来说将是一个很好的解决方案。

只是要清楚 -Local Workspaces并不意味着您的开发人员在本地工作。所有代码仍处于源代码控制之下,与Server Workspaces.

Local Workspaces是 TFS 2012 的新手,可以解决您的问题。您的主要优势是文件不再被标记read-only。这使您能够从任何地方(记事本、任何其他 IDE、Visual Studio)编辑它们,而无需先进行结帐。然后 Visual Studio 将自动检测文件已更改并在Pending Changes窗口中列出。

比较不同类型的工作空间的好文章:http: //blogs.msdn.com/b/willy-peter_schaub/archive/2011/11/30/team-foundation-server-trying-to-understand-server-versus-local -workspaces.aspx

于 2013-03-04T08:28:24.280 回答
0

是的,我知道在火焰开始出现之前,这不是传统的....但是团结一致我经常遇到这个问题。当我更新到统一 5.5 时,现在从字面上处理它,它在我当前的项目中带来了很多东西。在统一解决之后,我的项目完全不同步......无论出于何种原因,vis stu 拒绝监控这些变化......可以肯定的是,这很烦人,但不用担心,因为我每次都成功解决了它通过执行以下操作来完成迭代:

  1. 在单独的位置创建一个备份文件夹并将整个内容复制过来。只要备份在一个唯一的单独文件夹中,备份到哪里都没有关系。请务必复制文件夹而不是单个文件,因为某些文件可能会被隐藏。

  2. 完整获取最新版本(根据 TFS)。这可能需要一些时间,这就是您将其备份到单独位置的原因。请务必在这一点上保持 VS 开放!!!

  3. 使用您在步骤 1 中创建的备份覆盖您“获得”的所有文件。当您使用备份副本将文件覆盖到本地空间时,本地工作空间将监控对文件的更改,并将它们标记为待处理如果新的有任何差异,则相应地更改。

  4. 在源代码管理资源管理器中更新对 TFS 服务器的待定更改。在覆盖期间检测到的任何更改都将添加到包含的更改部分。

瞧,您已将文件、工作和意愿强制到 TFS 服务器上!

于 2017-01-15T07:15:39.287 回答
0

我喜欢使用源代码管理资源管理器窗口,然后右键单击文件夹并选择比较。您可以选择查看目标文件夹中有什么不同,或者什么是新文件。不同的文件以红色显示。然后,您可以右键单击它们并签出和签入文件,或者使用 control-click 一次选择多个文件。

于 2016-05-02T18:37:46.727 回答