2010-08-18 78 views
3

在我们的服务器上,有三个(实际上是数千个)文本文件存储在一个纯粹的git存储库中:A.txt,B.txt,C.txt。具有不同文件权限的git克隆

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

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

有没有可能使这与git(...或mercurial)?

想法:我可以让裸露的git仓库的两个克隆使用Git用户“foo”和“客人”至极的稀疏结账 功能只包括他们 被允许看到的文件吗?

任何其他(更快)的想法?

+0

我想他们不能只是所有的单独的存储库? – Cascabel 2010-08-18 16:58:24

回答

2

你应该:

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

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

另外,与gitolite,你可以控制谁可以推/拉什么(在分行层面),这意味着:

  • 客人只能拉guest分支。
  • 一个foo用户将只能拉动guest分支和users分支,同时能够推动users分支(或者如果您希望用户更新guest分支的内容,那么两个分支都可以)。
  • 管理员可以拉/拉所有分支。