TFS Changeset是否应仅引用解决方案中的文件?

时间:2014-03-26 15:53:11

标签: file visual-studio-2012 tfs solution changeset

我正在编写一个工具来自动化我们网站的代码文档和部署,我在测试时遇到了一个异常现象,这让我对变更集的理解产生了怀疑。

我所看到的是一个变更集引用文件,这些文件实际上并不是解决方案的一部分(尽管它们曾经是这样)。

尽我所能确定这是一系列事件(除了最后一步发生在我加入公司之前,所以这一切都是从源控制历史中推断出来的):

  • 一个文件夹被添加到一个项目中,该项目包含大约十几个txt文件,这些文件用作电子邮件的模板,这些文件已签入TFS
  • 2周后,有4个txt文件从项目中删除但未被物理删除
  • 2年后,开发人员有一项任务是更新电子邮件模板并更改文件夹中的所有txt文件,包括不在项目中的四个文件
  • 开发人员检查他的更改,从而导致Changeset X

当我查看Changeset X及其更改列表时,它包含对每个txt文件的“编辑”,包括四个已删除的文件。我检查了CSPROJ文件,并且在更改集的位置上肯定没有对已删除文件的引用。

当我的代码遍历变更集中的所有更改时,它会尝试将更改的文件结合到它所属的项目中,以便识别由于更改而需要部署的文件 - 即它的.html或.jpg然后它只是被复制,但如果它的源代码,那么我需要部署从文件中编译的相关二进制文件)。因此,当它找到这些文件并尝试查找它们所属的项目时,它就失败了。

变更集是否应该引用这些已删除的文件,还是TFS中的错误?或者,在两个变更集之前的两年内,代码从TFS 2008迁移到TFS 2012时会发生什么?如果它不是一个bug,那么在什么情况下你会期望TFS跟踪不在项目中的文件的变化?

我试图通过设置一个全新的项目并将其添加到源代码控制然后添加,删除和编辑相关的文本文件来复制它,但我不能让它以相同的方式运行。

1 个答案:

答案 0 :(得分:0)

TFS是对的。 Visual Studio解决方案是一个很好的界面,可以直观地管理Version Control中的文件子集。通常有多个解决方案并在多个位置更改文件,但仍然是我想要记录为单个更改集的单个逻辑更改。