从TFS获取最新信息时的时间戳,这是否重要?
我不知道为什么我以前从未注意到这一点,但当我从TFS“获取最新信息”时,本地工作文件夹中文件的日期和时间设置为当前日期和时间。这适用于创建和修改的日期,即使没有进行任何更改(正如我刚才所做的“获取最新信息”,仅此而已)从TFS获取最新信息时的时间戳,这是否重要?,tfs,version-control,msbuild,Tfs,Version Control,Msbuild,我不知道为什么我以前从未注意到这一点,但当我从TFS“获取最新信息”时,本地工作文件夹中文件的日期和时间设置为当前日期和时间。这适用于创建和修改的日期,即使没有进行任何更改(正如我刚才所做的“获取最新信息”,仅此而已) 我是否应该担心文件的日期和时间没有反映文件创建和随后修改的真实日期和时间?我有TFS的修订记录,所以我不太担心,但我必须承认这感觉是错误的。技术上的一切工作,但我想知道发生了什么。正如您注意到的,Team Foundation Server中的默认行为是将文件时间写入“当前”时间
我是否应该担心文件的日期和时间没有反映文件创建和随后修改的真实日期和时间?我有TFS的修订记录,所以我不太担心,但我必须承认这感觉是错误的。技术上的一切工作,但我想知道发生了什么。
正如您注意到的,Team Foundation Server中的默认行为是将文件时间写入“当前”时间(当您检索文件时)。这是大多数版本控制工具的默认行为,通常被认为是安全的。 在许多情况下,将时间设置为远程时间可能会产生负面影响。例如,
make
将扫描比上次生成时间更新的文件。将文件时间设置为服务器时间可能会影响确定自上次生成以来哪些文件已更改的能力
但是,如果您确实喜欢此行为,并且至少使用TFS 2012和Visual Studio 2012,则可以通过将“文件时间”设置为“签入”,在每个工作区的基础上启用此行为:
其他详情:
文件时间:
- 如果您希望每个文件的日期和时间戳通常与文件中版本的变更集的戳相匹配,请选择“签入”
工作空间。以下是一些问题和例外情况:
- 修改本地文件时,日期和时间戳将与修改文件时的日期和时间匹配
>P>只有在使用VisualStudio 2012或更高版本和VisualStudioTeam Foundation Server 2012或更高版本之后才能使用此特性。 - 该设置不适用于文件夹,除非对文件夹中包含的文件执行挂起的添加或删除操作
- 您可能无法以增量方式构建代码项目。相反,您必须重建)
如前所述,这是TFS的默认行为。这是我使用的第一个版本控制系统,它是默认设置。当开发人员获得最新版本时,使用文件的当前时间的问题在于,您只能通过对每个文件进行文件比较来判断您是否拥有最新版本。同一项目中的三个不同开发人员对于同一版本的文件将具有3个不同的日期时间值。无论哪种方式,在创建构建之前都要先清理项目。为什么?因为您可能调整了一两个文件,然后在测试后,恢复到最新的签入版本。根据我的经验,使用登记时间总是更好的 TFS不应在源代码管理处理中修改原始文件属性。它的构建功能应该使用它们自己的属性来控制最新的签入版本和构建控制。
从TFS获取文件时,应将原始文件放回系统,且其原始属性未修改。TFS因出于自身目的而劫持原始文件的属性而被破坏。原始的Microsoft VSS工具提供了此选项-TFS团队真丢脸。注意:这似乎是TFS2012中的一项新功能,因为TFS2010没有显示此选项。你知道这在旧版本中是可以设置在其他地方还是根本不可能吗?@SvenS抱歉,不,这在2012年确实是新的。请给我一点时间来查找此对话框。在VS2013中,它位于文件、源代码管理、高级工作区下。然后选择“工作区,编辑”按钮。这就是为什么不应该使用日期来判断文件的版本:不仅三个不同的开发人员可以在不同的日期拥有相同的内容,而且三个开发人员可以在相同的日期拥有不同的内容!你的版本控制工具可以告诉你你有什么版本,以及你是否编辑过它。如果你不相信这一点,你就不应该使用它。我必须+1这个答案。我运行一个数据中心,在更新过程中没有正确的日期是很糟糕的。字节比较文件是正确的方法,但不是通过WAN。这就是为什么要远程启动远程会话并进行哈希处理。