子模块贡​​献者的“隐形”主项目

时间:2010-11-28 12:22:55

标签: git project-management

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

然后我在服务器Y上有项目B,这取决于A(所以我想它将是A的子模块。)

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

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

组织事物的最佳方法是什么?在Y我正在使用gitolite,如果这是相关的。

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

你会怎么做?感谢。

请提供尽可能多的具体git命令以及.git *文件应尽可能的样子。我怀疑我必须在服务器Y上创建一个“远程”,但我不知道如何完成它。欢迎任何具体的指示。

附录

服务器X需要我的RSA密钥,以防我必须从X向Y提取东西。即使只是在Y上添加A作为远程也不会起作用。

1 个答案:

答案 0 :(得分:1)

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

服务器Y上的含义,您:

  • A添加为项目B
  • 的子模块
  • 阻止任何用户在A内的B路径内撰写(因为您可以使用gitolite制作file/dir name restrictions

如OP所提到的那样,“文件/目录结构强加它:目录B必须位于服务器A上的目录Y内”,那么它是合适的:

  • 使B成为A的子模块(尽管它与“B背后的语义相矛盾,这取决于A
  • 用于gitolite仅在A/B路径
  • 中授权文件修改(添加和提交)