【问题标题】:How do I permanently exclude the bin and obj folders from TFS 2012 checkin?如何从 TFS 2012 签入中永久排除 bin 和 obj 文件夹?
【发布时间】:2014-02-11 03:50:07
【问题描述】:

我搞砸了 TFS 设置,不小心包含了用于 TFS 2012 签入的 bin 和 obj 文件夹,甚至已经签入了它们。我不希望这样,因为这些文件经常更改并且不适合包含在内。

我检查了What happened to "Exclude from Source Control" in VS2012。接受的答案不起作用,因为 bin 和 obj 文件夹以及这些文件夹中的 DLL 不会出现在“促进候选更改”列表中,即使在排除它们之后也是如此。第二个最受欢迎的答案也不会永久有效。我对所有都按是,它会将它们从包含的更改列表中删除,但是当我执行任何涉及重建的操作时,它们会再次添加到包含列表中。

我正在寻找一个永久的解决方案,它将永久排除这些文件夹和其中的文件,并在可能的情况下将它们从 TFS 服务器中删除。

【问题讨论】:

  • @nate-kerkhofs - 你没有标记答案,这有点粗鲁。 jessehouwing 提供的答案有效并满足您指定的要求。
  • @Bertie 我稍后给自己回复了一个答案,但我无法让 .tfignore 解决方案发挥作用。
  • @NateKerkhofs - 我的错,没有注意到那个帖子是你写的。史诗般的失败! :) 你有没有弄明白为什么你不能创建忽略文件?这是否指向更可疑的事情?!
  • @Bertie 我真的不知道,我不能再测试它了,因为我不再在那里工作,所以我无法访问 TFS 服务器来测试它。

标签: visual-studio-2012 tfvc


【解决方案1】:

TFS 2012 可以选择drop a .tfIgnore file in your workspace

Visual Studio 有一个 UI 可以为您创建文件:

虽然您可以使用上述规则手动创建 .tfignore 文本文件,但您也可以在 Pending Changes 页面检测到更改时自动生成一个。

自动生成.tfignore文件

  • 在 Pending Changes 页面的 Excluded Changes 部分中,选择 Detected changes 链接。

  • 将出现“促进候选者更改”对话框。

  • 选择一个文件,打开其上下文菜单,然后选择忽略此本地项目按扩展名忽略按文件名忽略

  • 选择 OKCancel 以关闭“Promote Candidate Changes”对话框。

  • 一个.tfignore 文件出现在Pending Changes 页面的Included Changes 部分。您可以打开此文件并对其进行修改以满足您的需要。

  • .tfignore 文件会自动添加为包含的待定更改,以便您创建的规则将应用于获得该文件的每个团队成员。

或者使用echo . > .tfIgnore从命令行创建它,然后使用记事本打开它。

另一个技巧是在资源管理器中将文件命名为.tfIgnore. 并保存。可能会提示您是否要更改扩展名,在这种情况下,答案是:是。

【讨论】:

  • 所以我只需在根目录中添加一个 .tfignore 文件,其中包含 \bin 和 \obj 吗?
  • 是的,确保它是您工作区的一部分。如果需要,您可以签入文件。
  • 如何添加没有名称的文件?当我尝试使用资源管理器和从快捷菜单添加新项目时,我无法添加 .tfignore 文件,因为它需要一个名称。
  • 被低估的答案。按照@jessehouwing 描述的说明进行操作,您就有了一个确定的火灾忽略列表。容易做到 - 我建议使用他描述的 Pending Changes 路线。
  • 仅供参考,.tfignore 遵循.gitignore 语法,那里有更多文档......
【解决方案2】:

对于排除 Bin 文件夹,在“包含的更改”中的查看选项下勾选“显示解决方案更改”

【讨论】:

    【解决方案3】:

    我求助于我们的 TFS 管理员。

    我们无法制作 .tfignore 文件,但起作用的是以下内容:

    1. 签入 TFS 中的两个文件夹;
    2. 从源代码管理资源管理器中删除项目特有的 dll 和 pdb,并签入此更改。
    3. 在本地重建项目,尝试签入并确认没有待处理的更改。

    依赖程序集仍保留在 TFS 中,但由于这些程序很少更改,因此这不是大问题。

    【讨论】:

    • 这是一个很好的答案。原因是Source Control Explorer 是确保文件在某个时间签入、存在于解决方案中并再次签入的位。在 Visual Studio 中,签入发生为Client - 因此,即使该文件夹不在源代码管理下,TFS 也会说必须签入文件。TFS 是一个野兽,并且在 VS 中管理服务器和客户端会混淆分配的人,因为他们认为这是同一件事。 .tfsignore 的事情.. 从来没有为我工作过,因为应该与 web.config
    猜你喜欢
    • 1970-01-01
    • 2017-12-20
    • 2019-04-14
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2013-01-24
    相关资源
    最近更新 更多