我们有一个有一个子模块的git超级项目。子模块正在审核中。
我们的问题是,虽然在子模块中正在审查更改,(即使已经在超级项目上提交了正在审核的提交的子模块链接),其他开发人员也无法通过'git submodule update'检索更改,除非他们具体在子模块中获取refs / changes / *。
我明确指出,我们需要其他开发人员能够检查子模块中仍在审核的代码。因此,等待代码合并不是一个可行的选择。
是否有办法让开发人员通过超级项目上的'git submodule update'来获取子模块中正在审核的更改,该超级项目的子模块链接指向正在审核的提交?
答案 0 :(得分:0)
其他开发人员无法通过'git submodule update'检索它们,除非他们专门在子模块中获取
refs/changes/*
。
然而,这似乎是审查这些承诺的通常方式 例如,EGit munual部分“Fetching a change from a Gerrit Code Review Server”就是这样做的:
此wiki page详细说明了该过程:
将gerrit中的补丁合并(参见gerrit的下载部分)它应该是类似的东西:
git fetch ssh://username@gerrit.tuleap.net:29418/tuleap refs/changes/52/52/8
git merge --no-ff --no-commit --log FETCH_HEAD
由于开发人员想要更新子模块(应该引用特定的提交),他/她可以:
dev
分支,其中可以合并Gerrit更改dev
分支进行比较,可能会将dev
分支重置为所述新更新的HEAD。答案 1 :(得分:0)
我认为这可以通过默认显式提取更改引用来解决:
fetch = +refs/changes/*:refs/remotes/origin/changes/*
或类似的。我不确定是否
git pull --recurse-submodules=yes
会正确地选择它。