visual studio 2012中的TFS强制签入
本文关键字:TFS studio 2012 中的 visual | 更新日期: 2023-09-27 18:01:29
这个问题在上面的链接中没有答案…
我在TFS上遇到了一些问题,其中visual studio构建在本地机器上没有问题,但是当我尝试在服务器上构建时,我得到了构建错误。这些错误与这个问题无关。
我遇到的问题是,为了修复这些错误,我不得不在我的本地机器上手动编辑一些文件,因为它们是手动编辑的,TFS不会检测到更改,所以它不会让我上传我的更改集到服务器,这将修复那里的问题。
我的第一个,也是主要的问题是:如何强制TFS将我所有的本地文件复制到服务器上?有点像整句的反面:
转到查看/其他Windows/源代码管理资源管理器/右键单击相关项目/高级/获取特定版本/勾选"覆盖所有文件…"/按ok
它(有争议,因为在我的经验中它并不总是得到所有东西)从服务器到本地机器获得完整的文件集。
我厌倦了TFS上传部分文件集,然后当解决方案在本地删除时,然后从服务器重新下载,我必须从一些备份中拉入缺失的文件和引用。如果它是完全上传,并在一开始就正确,我可能会有更少的这些问题。这是我的主要问题。我如何强制TFS上传我所有的文件,不管他们是否根据它改变了。
进一步解释我遇到的一个问题,特别是nuget包管理器。我禁用了"允许NuGet在构建期间下载丢失的包"选项。所以我在本地得到了实际的构建错误。是的,没错,构建错误。像这样…
Project XXX: Package restore默认禁用。表示同意,打开Visual Studio Options对话框,单击Package Manager节点并选中"允许NuGet在构建期间下载丢失的包"。你也可以通过设置环境变量给予同意吗'EnableNuGetPackageRestore'设置为'true'.
现在强制我重新启用该选项以消除错误。我对此很恼火,因为这样的错误应该以警告的形式呈现,以免阻止构建。这非常令人失望,因此我对NuGet的评价很差。
无论如何,足够的咆哮,我重新启用了这个,不像我有一个选择。但是这个被禁用的版本上传到了服务器。现在我在服务器上得到这个错误。我试着重新启用它,做一个检查,但TFS不让我。(警告……没有未完成的更改)。当然不是,它只是一个愚蠢的复选框。什么可能已经改变了。但是现在我在服务器上得到一个错误,我不能全部修复,因为NuGet的一些人没有把一些教导正确地设计他们的警告(而不是通过引起错误来阻止构建)。
那么,再一次,我如何强制TFS将我的所有文件,无论是更改的还是未更改的,逐字逐句地放到服务器上?这样,当我在本地修复一个问题时,它"应该"在服务器上也修复它。或者,至少,当我下次下载它时,我可以确保完整的文件集。
如果这听起来像是我的消极,我很抱歉,但我在这5天,它已经完全停止了开发,花费了我和公司很多钱。任何帮助都会非常感激。
没有办法告诉TFS获取我的文件系统中的所有内容。你需要做的是一个多步骤的过程。首先签出整个目录,这将不会覆盖您的手动更改,但将允许您签回并让它检测这些更改。其次,如果创建了任何新文件,则需要在根目录下添加并获取所有新添加的文件。最后签入所有更改。它真的应该这么简单。
如果您使用的是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
我喜欢使用源代码管理资源管理器窗口,然后右键单击文件夹并选择比较。您可以选择查看目标文件夹中的不同之处,或者查看新文件的内容。不同的文件显示为红色。然后,您可以右键单击它们并签出和签入文件,或者使用control-click一次选择多个文件。
是的,我知道在火焰开始升起之前,这不是常规....但在团结工作中,我经常遇到这个问题。从字面上处理它,现在我更新到unity 5.5,它在我当前的项目中提供了很多东西。在unity的决议之后,我的项目完全不同步了…不管出于什么原因,斯图拒绝监控这些变化……要确定这是相当恼人的,但不用担心,因为我每次都通过执行以下操作成功地解决了这个问题:
-
在单独的位置创建一个备份文件夹并复制整个文件。备份到哪里并不重要,只要它在一个独特的单独文件夹中。请确保复制文件夹,而不是单个文件,因为有些文件可能被隐藏。
-
执行最新版本的完整获取(根据TFS)。这可能需要一些时间,这就是为什么你要把它备份在一个单独的位置。在这一点上一定要保持VS开放!!
-
用步骤1中所做的备份覆盖您"得到"的所有文件。当您将备份的副本覆盖到本地空间时,本地工作空间将监视对文件的更改,如果新文件有任何差异,则将它们标记为有相应的未决更改。
-
在源代码管理资源管理器中将挂起的更改更新到TFS服务器。在覆盖期间检测到的任何更改都将添加到包含的更改部分。
瞧,你已经强迫你的文件,工作和意志到TFS服务器!