代码之家  ›  专栏  ›  技术社区  ›  Flavius

子模块参与者的“不可见”主项目

  •  1
  • Flavius  · 技术社区  · 14 年前

    我有一个独立的项目A,在git server X上,我是一个简单的用户,对我的项目A只有RW权限。

    然后在服务器Y上有一个项目B,它依赖于A(所以我想它是A的一个子模块)。

    在服务器X上,我是唯一拥有RW权限的用户,在服务器Y上,我可以做任何事情,我是管理员。

    现在我想和一个同事一起在服务器Y上的项目B上工作。他将能够使用和查看a的代码,但他不能看到任何与服务器X相关的内容。

    组织事情的最佳方法是什么?我用的是gitolite,如果有关系的话。

    需要的是,合作者不能直接与服务器X交互,也不必知道服务器甚至存在。同时,我将在X上处理项目A,他应该只看到我在服务器Y上推送到A(在X上)的更改。

    你会怎么做?谢谢。

    请提供尽可能多的具体git命令以及.git*文件的外观。我确实怀疑我必须在服务器Y上创建一个“remote”,但我不知道如何准确地创建它。欢迎任何具体指示。

    附录

    服务器X需要我的RSA密钥,以防我不得不将数据从X拉到Y。即使简单地在Y上添加一个作为远程的也不见得就能工作。

    1 回复  |  直到 14 年前
        1
  •  1
  •   VonC    14 年前

    注: A 将是的子模块 B ,而不是相反。

    服务器上的含义 Y ,您:

    • 添加 一个 作为项目的子模块
    • 阻止任何用户在 一个 在内部 (因为你可以 file/dir name restrictions 含硅沸石)

    如果,正如OP所提到的,“file/directory结构强加给它:directory 必须在目录内 一个 在服务器上 是的 “,那么:

    • 使B成为 一个 (尽管它与后面的语义有点矛盾) ,这取决于 一个 )
    • gitolite只授权在 A/B 路径