VCS能够为每个用户编制版本的文件

时间:2012-03-30 15:04:05

标签: version-control

我已经使用过一些VCS,比如CVS,SVN和Git。我遗失的一个功能在任何地方都找不到。

我希望在存储库中有文件,但每个用户都应该拥有自己的文件。因此,当您结帐时,您将获得该文件的默认值,并且仅为您自己提交更改。

为什么我要这个?有一些文件,比如配置,我希望在存储库中有一个默认版本(例如,用于构建版本或新团队成员的起始基础),但对该文件的更改仅与某个开发人员(或工作副本)相关因为它将包含仅对该开发人员/工作副本有效的路径。

目前,当我不添加此文件时: - 在创建新的工作副本或导出发布版本时,我会想念它们 - 没有我可能为自己做过实验的改变的历史

目前,当我将这些文件添加到存储库时: - 我可能永远不会提交它们所以我在存储库中有一个默认值,但我的文件总是被标记为"已更改"。在SVN中,我可以将它添加到" ignore-on-commit"改变清单以改善一点。 - 我可能会松开我自己对困难配置文件的更改(数据崩溃,笔记本电脑被盗等)

是否有VCS能够做到这一点? SNV或git是否支持我可能会监督的事情?

2 个答案:

答案 0 :(得分:1)

我认为VCS不是问题所在。看起来如果您的文件的内容依赖于本地环境,您应该使用脚本自动生成它。这样,您忽略了生成的文件,但脚本版本和每个开发人员在运行时仍然获得完整有效的配置文件副本。这与使用特定于用户的IDE设置的方法相同:例如Visual Studio上的.suo文件。

更新

如果您特别需要一组默认值,那么解决方案就是:

  1. 将默认值添加到存储库。
  2. 每个开发人员都在他们自己的分支中工作。这样,他们可以版本化 更改配置文件。
  3. 当重新基于主人和/或合并时,开发人员根本就没有 合并他们的定制配置。
  4. 您始终可以设置一个挂钩来检查默认配置是否已被修改,如果是,可以通过电子邮件发送开发。您只需查看这样的提交,就像查看无法编译的提交一样。
  5. Devs很聪明。当然,他们会犯错误。但永远不要低估一些简单沟通的力量。

    当然,当默认配置被自定义的Dev X覆盖时,您可以使用git的强大功能立即修复该提交。

答案 1 :(得分:1)

如果我理解并分解您的任务正确

“拥有一组某些的默认模板,这是每用户自定义的起点,这些自定义版本必须单独存储,并且只能由负责人员访问”

你可以使用这个工作流程(草稿,修改和更正的主题),Subversion基于简单和透明的管理(任何CVCS的优点)

  • Subversion存储库
  • repo的每个用户在repository-tree中都有自己的预定义路径(具有可管理性和流程自动化的通用路径模式)
  • 还存在一个特殊的管理员管理路径,普通用户无法访问

我们的树可能看起来像这样(Repository dir是存储库的根目录)

z:\>dir /s /B
z:\Repository
z:\Repository\Users
z:\Repository\Template
z:\Repository\Users\Alpha
z:\Repository\Users\Bravo
  • 对于每个用户路径,我们使用基于路径的身份验证,该身份验证仅为每个用户提供对存储库中子树的访问权限,
  • 模板包含(如名称所示)所有用户文档的模板存根
  • 显然,将新用户添加到repo会变得简单易用的自动化任务:
    • svn copy模板到新用户的目录
    • 为authz-file
    • 中的用户创建已创建位置的rw权限
    • 在repo中告诉用户个人树的URL