3

在我们的服务器上,三个(实际上:数千个)文本文件存储在一个裸 git 存储库中:A.txt、B.txt、C.txt。

  • 用户“admin”应该查看/编辑它们。
  • 用户“Foo”应该查看/编辑“A.txt”和“B.txt”,但不允许他查看“C.txt”的内容。
  • 用户“guest”应该只被允许查看/编辑“A.txt”。

所有三个用户都应该能够使用他们被允许编辑的文件来克隆 git 存储库。

有没有可能用 git (...或 mercurial) 来做这个?

想法:我可以使用 git 的稀疏检出功能为用户“Foo”和“guest”制作两个裸 git 存储库的克隆,其中仅包括他们被允许查看的文件?

还有其他(更快)的想法吗?

4

1 回答 1

2

你应该:

  • 拥有三个分支
    • 来宾(只有A.txt文件)
    • 用户(带有 A 和 B.txt 文件)
    • 管理员(包含所有文件)

这意味着频繁合并以更新不同的分支并传播不同的修改。

另外,使用gitolite,您可以控制谁可以拉/推什么(在分支级别),这意味着:

  • 客人只能拉guest树枝。
  • 一个 foo 用户将只能拉guest分支和users分支,同时能够推送users分支(或者如果您希望用户更新分支的内容,则可以推送两个guest分支)。
  • 管理员可以拉/拉所有分支。
于 2010-08-18T15:15:24.697 回答