【问题标题】:timestamp when Getting Latest from TFS and does it matter?从 TFS 获取最新信息时的时间戳,这有关系吗?
【发布时间】:2013-02-20 05:44:41
【问题描述】:

我不确定为什么我以前从未注意到这一点,但是当我从 TFS “获取最新”时,我本地工作文件夹中文件的日期和时间设置为当前日期和时间。这适用于创建和修改日期,即使没有进行任何更改(就像我刚刚做了“获取最新”一样,仅此而已)。

我是否应该担心文件的日期和时间不能反映文件创建和随后修改的真实日期和时间?我在 TFS 中有修订历史,所以我并不过分担心,但我必须承认这感觉不对。 技术上一切正常,但我想知道发生了什么。

【问题讨论】:

    标签: tfs version-control msbuild


    【解决方案1】:

    如您所见,Team Foundation Server 中的默认行为是将文件时间写入“当前”时间(当您检索文件时)。这是大多数版本控制工具的默认行为,通常被认为是安全的。

    将时间设置为远程时间在许多情况下可能会产生负面影响。例如,make 将扫描比上次构建时间更新的文件。将文件时间设置为服务器的时间会影响确定自上次构建以来哪些文件已更改的能力。

    但是,如果您确实更喜欢这种行为并且至少使用 TFS 2012 和 Visual Studio 2012,则可以通过将“文件时间”设置为“签入”来针对每个工作区启用它:

    更多详情from Microsoft:

    文件时间:

    • 如果您希望每个文件的日期和时间戳与您的 工作区。一些问题和例外是:

      • 当您修改本地文件时,日期和时间戳将与您修改文件时的日期和时间一致。

      • 此功能仅在您使用 Visual Studio 2012 或更高版本以及 Visual Studio Team Foundation Server 2012 或更高版本时可用。

      • 该设置不适用于文件夹,除非该文件夹包含的文件存在挂起的添加或删除操作。

      • 您可能无法以增量方式构建代码项目。相反,您将不得不重建)。

    • 如果您希望日期和时间戳与您上次修改本地文件的日期和时间相匹配,请选择 当前。例如,一个 团队成员在周一签入了对文件的最新更改。在 星期二,您执行 get 操作来更新文件。日期和 时间戳设置为星期二。

    【讨论】:

    • 注意:这似乎是 TFS2012 中的一个新功能,因为 TFS2010 没有显示此选项。你知道这是否可以在其他地方设置或在旧版本中根本不可能?
    • @SvenS 对不起,不,这确实是 2012 年的新内容
    • 花了我一点时间才找到这个对话框。在 VS2013 中,它位于 File、Source Control、Advanced、Workspaces 下。然后选择工作区,编辑按钮。
    【解决方案2】:

    如前所述,这是 TFS 的默认行为。这是我在默认设置下使用的第一个版本控制系统。当开发人员获得最新版本时,对文件使用当前时间的问题在于,您只能通过对每个文件进行文件比较来判断您是否拥有最新版本。同一项目中的三个不同开发人员对于同一版本的文件将具有 3 个不同的日期时间值。无论哪种方式,在创建构建之前总是做一个项目清理。为什么?因为您可能已经调整了一两个文件,然后在测试后恢复到最新的签入版本。根据我的经验,使用签到时间总是更好。

    【讨论】:

    • 这就是为什么您不应该使用日期来判断您是否拥有文件的版本:不仅三个不同的开发人员可以拥有不同日期的相同内容,三个开发人员也可以拥有不同的内容与同一日期!你的版本控制工具可以告诉你你有什么版本,以及你是否编辑过它。如果你不相信它,你就不应该使用它。
    • 我必须 +1 这个答案。我运行一个数据中心,并且在更新期间没有正确的日期是很糟糕的。字节比较文件是正确的方法,但不能通过 WAN。
    • 这就是您启动远程会话并远程进行散列的原因。
    【解决方案3】:

    TFS 不应修改源代码控制处理中的原始文件属性。它的构建功能应​​该使用它们自己的属性来控制最新签入的版本和构建控制。 从 TFS 获取文件应将原始文件放回系统上,且其原始属性未修改。 TFS 因自身目的而劫持原始文件的属性而被破坏。最初的 Microsoft VSS 工具提供了此选项 - TFS 团队可耻。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      相关资源
      最近更新 更多