我不知道为什么我之前从未注意到这一点,但是当我从TFS“获取最新”时,我本地工作文件夹中文件的日期和时间被设置为当前日期和时间。这适用于创建和修改日期,即使没有进行任何更改(因为我刚刚“获取最新”,仅此而已)。
我是否应该关注文件的日期和时间不反映文件创建和随后修改的真实日期和时间?我有TFS的修订历史,所以我并不过分担心,但我必须承认这感觉不对。 技术的所有内容都有效,但我想知道发生了什么。
答案 0 :(得分:22)
正如您所知,Team Foundation Server中的默认行为是将文件时间写入"当前"时间(当您检索文件时。)这是大多数版本控制工具的默认行为,通常被认为是安全的。
在许多情况下,将时间设置为远程时间会产生负面影响。例如,make
将扫描比上次构建时间更新的文件。将文件时间设置为服务器的时间会影响确定自上次构建以来哪些文件已更改的能力。
但是,如果您确实喜欢此行为并至少使用TFS 2012和Visual Studio 2012,则可以通过设置"文件时间"在每个工作区的基础上启用它。到" Checkin":
其他详细信息from Microsoft:
文件时间:
如果您希望每个文件的日期和时间戳通常与您所在版本的变更集的标记相匹配,请选择签入 工作区。一些问题和例外是:
修改本地文件时,日期和时间戳将与修改文件的日期和时间相匹配。
只有在使用Visual Studio 2012或更高版本以及Visual Studio Team Foundation Server 2012或更高版本时,此功能才可用。
该设置不适用于文件夹,除非对文件夹包含的文件有待处理的添加或删除操作。
您可能无法逐步构建代码项目。相反,你将不得不重建。
如果您希望日期和时间戳与上次修改本地文件的日期和时间相匹配,请选择当前。例如,a 团队成员在周一检查了文件的最新更改。上 星期二,您执行get操作来更新文件。日期和 时间戳设置为星期二。
答案 1 :(得分:1)
如上所述,这是TFS的默认行为。这是我用过的第一个版本控制系统,它是默认设置。在开发人员获得最新版本时使用文件当前时间的问题是,您只能通过对每个文件进行文件比较来判断您是否拥有最新版本。同一项目中的三个不同开发人员将为同一版本的文件提供3个不同的日期时间值。无论哪种方式,在创建构建之前始终要清理项目。为什么?因为您可能已经调整了一两个文件,然后在测试之后,还原到最新的签入版本。根据我的经验,使用签到时间总是更好。
答案 2 :(得分:0)
TFS不应修改源代码管理处理中的原始文件属性。它的构建功能应该使用自己的属性来控制最新的已签入版本和构建控件。 从TFS获取文件应将原始文件放回原始属性未修改的系统上。为了自己的目的,劫持原始文件的属性打破了TFS。最初的Microsoft VSS工具提供了这个选项 - 对TFS团队感到羞耻。
答案 3 :(得分:0)
我也在搜索这个,因为我的雇主还没有准备好今天转到最新的TFS版本我遇到了这个TFS Source Control Explorer Extension并且在安装这个插件之后我能够获得带有登记时间戳的文件。如果任何人仍然希望获得TFS 2010和客户端作为VS 2010的登记时间戳的文件,这应该可以解决问题。