5

我们有一个 git 超级项目,它有一个子模块。该子模块正在接受 Gerrit 审查。

我们的问题是,虽然子模块中正在审查更改,(即使已在超级项目上提交了正在审查的提交的子模块链接)它们不能被其他开发人员通过 'git submodule update' 检索,除非他们专门获取 refs/子模块中的更改/*。

我明确指出,我们需要其他开发人员能够检查子模块中仍在审查中的代码。所以等待代码被合并并不是一个可行的选择。

有没有办法让开发人员通过超级项目上的“git submodule update”获得子模块中的更改,该超级项目的子模块链接指向正在审查的提交?

4

2 回答 2

0

除非他们专门在子模块中获取,否则其他开发人员无法通过“git submodule update”检索它们refs/changes/*

然而,这似乎是审查这些提交的常用方法。
例如,EGit munual 部分“从 Gerrit 代码审查服务器获取更改”正是这样做的:

EGit Gerrit 获取

wiki 页面详细介绍了该过程:

从 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 更改
  • 不时更新同一个子模块,并将新的子模块 HEAD 与dev分支进行比较,可能会将分支重置dev为所述新更新的 HEAD。
于 2013-09-05T06:50:31.857 回答
0

我认为这可以通过默认显式获取更改参考来解决:

fetch = +refs/changes/*:refs/remotes/origin/changes/*

或类似的。我不确定是否

git pull --recurse-submodules=yes

会正确捡起它。

于 2015-04-22T09:00:42.523 回答