【问题标题】:Keep Attributes of Version Controlled Files Unchanged保持版本控制文件的属性不变
【发布时间】:2009-06-05 09:47:30
【问题描述】:

是否可以保持版本控制文件的属性不变?我有一个目录结构,我希望我的安装程序在客户端计算机上重新创建。我希望整个目录可以放在 VCS 上而不影响文件属性。

我正在使用 TFS,但也想了解其他版本控制系统。

编辑:我说的是 Windows 文件系统属性,例如隐藏/存档/系统/只读,但也欢迎任何其他信息,例如创建/修改日期。我有一个目录结构,其中一些文件是只读的,需要在客户端机器上安装这些文件。 TFS 倾向于根据文件是签入还是签出来设置/取消设置只读属性。

【问题讨论】:

  • 请问为什么要保持属性不变?一旦出现 MSI 安装程序,您希望从 VCS 系统一直到客户端计算机一直保留哪些属性?您希望如何处理诸如客户端时区差异之类的问题?

标签: version-control tfs file-attributes


【解决方案1】:

TFS 在当前版本的 TFS 中不存储文件属性数据(如创建日期、修改日期)等。这些属性的值将是第一次下载/修改文件时本地计算机上的时间。

【讨论】:

  • 这是我不知道的限制。所以我不能保留真实的文件日期?保留(第 3 方,二进制)文件上的日期通常很重要。猜你不需要将这些文件签入 TFS?
  • 我从来没有重要过保留程序集的属性。过去我听到的唯一关于这个问题的人是那些只想推送在构建之间发生更改的文件的 Web 应用程序人员。知道为什么可能需要保留第 3 方库上的日期吗?
  • 是的 - 我是 xcopy on change 的 wweb 设计师之一。但是如果有人签出,那个人会复制其他人当前正在处理的文件(开发状态服务器 - 所有 xcopy 到它)
【解决方案2】:

TFS 2010 能够将任意元数据附加到版本控制对象。但是,您必须编写自己的工具。

API 规范(预发布):http://blogs.msdn.com/mrod/archive/2008/05/09/team-foundation-server-properties.aspx

【讨论】:

    【解决方案3】:

    通常,版本控制系统不会将有关其控制下的文件的完整元数据信息存储在存储库中。在版本控制系统的通常使用中,这是不需要的,甚至可能会导致问题;版本控制系统存储“健全”的元数据子集(例如可执行权限和符号链接)。

    可能的解决方案是使用钩子在提交到某个文件(通常是纯文本文件)时保存文件元数据的所需部分,将此文件保持在版本控制下以自动将其分发给所有客户端,并使用钩子在结帐时恢复元数据.


    用于保存和恢复元数据的工具的示例解决方案包括(不幸的是,示例是针对 Git,而不是 TFS,但重要的是思想):

    将配置文件置于版本控制之下的工具示例解决方案(同样:它们都使用 Git 作为后端)包括:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多