2011-10-17 63 views
1

我正在尝试在其中设置一个带有子模块存储库的git存储库。让我们打电话给这个例子的2回购:Super & Sub。所以我初始化超级回购,然后做了第二回购的git submodule add。我承诺使用超级回购的.gitmodules文件,因此当您执行git clone --recursive时,它会沿着超级回收子模块。目前,我们的网址的格式如下:git submodules作为构建的一部分

ssh://[email protected]/path/to/repo.git 

现在可以说我有3个用户:user.auser.buser.cuser.a将子模块添加到超级回购。 user.b是构建服务器。当user.a添加子模块时,则user.b应该获取子模块为user.b(不是user.a)。当他克隆超级然后提交时,user.c也是一样,日志应该反映它是由user.c提交的,而不是user.a(谁添加了子模块)。我怀疑有一种方法可以指定子模块的url,而不包括user.name作为url的一部分。这导致我的问题。我该如何正确设置我的git存储库,使url不包含用户名?大概这涉及到复制一些键,我只是好奇什么是正确的方法来做到这一点。

千恩万谢 本

+0

见这里的解决方案:http://stackoverflow.com/questions/6031494/git-submodules-and-ssh-access – Cybot

回答

0

使用gitolite这样你就可以访问使用相同的用户只要操作系统而言所有回购。每个ssh密钥将确定该id。

+0

我们结束了使用https://bitbucket.org/sdorra/scm-manager/wiki/Home来做到这一点,似乎迄今为止工作得很好... – Ben

+0

这也将工作:)但结账gitolite,因为它提供了一些更整洁的选项每个分支的权限等。 –

0

尝试使用了相对网址的方式,子模块:

[submodule "common/sub"] 
path = common/sub 
url = ../common/sub 
+0

相关网址不起作用 – Cybot