我如何始终阻止TFS中特定文件的签入


67

我经常更改一个文件,但是却不想将其检入。我希望TFS阻止我检入或提交更改。如何配置TFS来做到这一点?

详细信息:该项目上还有另一位开发人员已经签入了一些我想在本地计算机上注释掉的错误代码。由于他们是客户,因此我宁愿保持这项技术性工作,而不是使其成为一种政治性的工作。

Answers:


91

TFS被低估的功能之一是伪装。与SVN一样ignore,伪装将使您忽略某些文件夹或文件。

掩盖文件夹

隐藏文件夹很容易:只需在源代码管理浏览器上右键单击一个文件夹,然后选择 Cloak

隐藏文件

UI不会公开单个文件的伪装,但有时您可能希望伪装诸如的特定文件app.config

  1. 转到File> Source Control>Workspaces

  2. 选择您的工作区,然后单击确定Edit

  3. 在工作文件夹下,然后输入一个带有状态的新条目,Cloaked并输入要隐藏的文件的完整服务器路径。(如:$/MyTeamProject/Dev/Src/SomeProject/app.config

隐藏文件


使用Local Workspace .tfignore文件(在TFS 2012、2013、2015及更高版本中)

Local Workspace中,可以使用use.tfignore文件(相当于.gitignoreGit)

.tfignore file example
 ######################################
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll

按权限阻止

另一种方法是拒绝检入文件(需要管理特权):

  1. 右键单击文件>单击Properties>Security

  2. 添加您的用户,并标记Deny上的Check In权限。

拒绝签到


我使用Windows资源管理器右键单击,转到属性和“安全性”选项卡,但是没有看到“签入”属性。您已经安装了一个特殊的插件吗?
MedicineMan

4
右键单击源代码管理资源管理器,而不是Windows资源管理器。
KMoraz

@KMoraz-我不知道这一点,让我在星期一
试试看

1
为什么我在SCE中的项目中的Cloak变灰了?
老盖泽2015年

2
对我来说,它是:File> Source Control> Advanced>Workspaces的伪装文件
萝莉

12

对于TFS 2012,只需使用.tfignore文件。

当您将忽略的文件添加到本地工作空间中映射的文件夹时,它们不会出现在Team Explorer的“ Pending Changes”页面中。

http://msdn.microsoft.com/en-us/library/ms245454.aspx


3
如何以!@#$%@的名义创建一个名为“ .tfignore”的文件?在Windows中,这是非法文件名。
斯科特·贝克

1
@ScottSEA有几种方法:记事本(另存为type =所有文件),使用命令提示符(command ren)重命名等,只是不要使用资源管理器。
Androiderson

我发现,至少对我来说,.tfignore直到签入之后才在VS2013中起作用。此外,我move还在cmd shell中使用了它来重命名它。
2015年

5
您可以将文件命名为“ .tfignore”。在Windows资源管理器中。注意多余的“。” 在最后。资源管理器会将文件重命名为“ .tfignore”
Patrick Huber

8

Visual Studio 2013(和2012)

通过选择文件并转到以下位置,可以使用此功能:

File > Source Control > Advanced > Exclude ... from Source Control

1
不,此选项在VS2012中不可用。
保罗

2
我在VS 2013.4
Hooch

1
感谢它的存在,请注意不要右键单击文件,而是转到Visual Studio窗口左上方的文件菜单。
Xander

1
该选项是上下文相关的。要排除的文件必须是Visual Studio中打开的当前窗口,文件菜单才能获得排除文件的选项。
Shiv

4

您可以从源代码管理中排除文件

1.在解决方案资源管理器中选择文件

2.转到文件->源代码管理->高级

排除路径

这是

这是排除


选项“ Exclude EndPointConfiguration.config ...”在VS2012中不可用-至少在我的VS2012 Professional安装中不可用。
保罗

这是VS2012 Pro。它应该在那里。“ EndPointConfiguration.config”只是在解决方案资源管理器中选择的文件的名称。因此,应该有一个“从源代码管理中排除xxxx”。而且您必须浏览菜单!如果仅右键单击该文件,它将不可用!
Felix Keil 2014年

费利克斯,我重试了。我的VS2012 Professional安装在菜单选择器“文件|文件”中显示以下项目。源代码管理| 高级:1.获取-file-的特定版本2.锁定3.应用标签4.恢复冲突解决5.从源代码管理中打开6.从源代码管理中添加项目7.工作区8.更改源代码管理9.刷新状态
Paul

2
此更改会传播到同一项目中的所有使用用户还是仅传播到本地工作区?
dota 2015年

这个答案与七个月前Evan Mulawski发表的答案有何不同?
Aaroninus

3

有两种方法。

  1. 您可以在“待更改”窗口中“取消选中”它,然后在下次加载Visual Studio时应记住这一点。如果您想“全选”并选中/取消选中列表中的项目,这会很麻烦,并且容易出错。
  2. 不要“检出”文件,进入资源管理器并自己删除“只读”属性。然后编辑所需的位。需要注意的是,TFS对此并不了解,并且并不总是正确地更新文件。同样,如果您在VS中编辑该文件(进行注解更改),该文件将被“检出”,然后您可能会误将其检入。

我不喜欢TFS / VS 2010中的任何一个选项,因此实际上避免这样做(我以前使用SVN时会遇到很大的“提交时忽略”)。现在,我正在使用VS11 Beta,“已排除”列表完全可以实现我想要的功能,我对其进行了移动,并将其保留在该列表中,而且我可以轻松地对该列表进行其他更改,而无需检入该文件。



2

如果您使用的是“本地”工作空间类型,那么这是TFS 2012的新功能-源代码控制文件根本不会设置为“只读”。但是在这种情况下,无论您在何处进行编辑,TFS都会将它们视为已更改并包含在挂起的更改中。默认情况下,将“自动排除”之类的选项从待处理的更改中删除非常好。并且仅在需要时才包括它们。


1

如果您使用的是VS2010,则TFS永远不会将隐藏文件夹检测为更改使用此功能。您不想成为TFS一部分的文件夹将其标记为隐藏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.