版本控制系统保留原始时间戳?

时间:2018-04-28 11:24:50

标签: version-control bazaar

这个问题来自Is keeping original timestamp useful in bazaar commit/pull/etc.? 特别是来自this answer

理想情况下,当使用Version control(VC)和 bazaar (版本控制系统,VCS)等软件时,可以:

  1. 保留文件内容在各个副本中的真正修改时间,因为这是有关文件的重要信息。 无论VC下文件的具体内容如何,​​都是如此。
  2. 确保根据VC下已更改的先决条件构建目标,并在获取修改后的副本(例如bzr pull)时重建。 这很重要,因为VCS的典型用途是:软件开发。 引自Wikipedia
      

    组织和控制修订的逻辑方法的需要几乎与写作已经存在一样......今天,最有能力(以及复杂)的修订控制系统是用于软件开发的系统,...

  3. 根据VC下已更改的先决条件,确保构建目标,在获取修改后的副本时重建。 这避免了处理时间可能显着的负担。 (我认为没有其他不利因素可以放弃这一点)。
  4. 是否有任何VCS可以实现这三种目标?

    <小时/> 目前形式为bzr,无法获得三者。

    一个人可以得到(1 + 2) 使用原始时间戳,并对每make clean执行pull(或类似),从而重建所有目标而不是仅重建几个目标。 另一方面, 一个人可以得到(2 + 3) 使用“now”作为时间戳。 (1 + 3)既不可能也不感兴趣。

    bzr,考虑到软件开发,让(2 + 3)占上风,放弃第1点。

1 个答案:

答案 0 :(得分:0)

这不回答具体问题(是否有任何VCS能够实现这三个目标?)但建议实现它的方法。

  1. pull已修改的文件,其中“now”为时间戳(如bzr所示),但也会提取有关这些文件的真正修改时间的信息并存储。
  2. 强制重建。
  3. touch已修改的文件具有已知的正确修改时间。
  4. 这将使本地副本处于理想状态。 因此,一种可以这种方式运行的软件将是一种解决方案。 此外,动作(2 + 3)可以封装成“增强型构建”动作。