SubmoduleUpdateCommand getConfigUpdate() returns 空

SubmoduleUpdateCommand getConfigUpdate() returns null

我有一个 git 存储库,其中包含一个子模块,它指向一个较旧的提交。我想使用 JGit API

将子模块更新到其最新提交
parentGit.getRepository().submoduleUpdate().call();

虽然代码执行没有任何错误,但我看不到我的子模块指向最新的远程提交

 SubmoduleWalk::getConfigUpdate

总是 returns null.

Please refer to org.eclipse.jgit.api -> SubmoduleUpdateCommand#call().

SubmoduleWalk walk = SubmoduleWalk.forIndex(parentGit.getRepository());
while(walk.next) {
    walk.getConfigUpdate(); // returns null;
    ...
}
parentGit.getRepository().submoduleUpdate().call(); // does nothing

walk.getConfigUpdate() 应该 return 的值为 ConfigConstants.CONFIG_KEY_MERGEConfigConstants.CONFIG_KEY_REBASE,以便在执行 parentGit.submoduleUpdateCommand().call() 时,子模块将指向其最新的远程头。

我是否缺少任何存储库配置?

SubmoduleWalk::getConfigUpdate returns 正是在存储库的配置键 submodule.<name of module>.update.

中设置的内容

如果未设置任何内容,方法 returns nullSubmoduleUpdateCommand 会检查父存储库索引中引用的提交作为分离的 HEAD。

确保父存储库的索引指向所需的子模块提交 ID。要选择不同的更新策略,您可以这样更改配置:

StoredConfig config = repository.getConfig();
config.setString(CONFIG_SUBMODULE_SECTION, "my-module", CONFIG_KEY_UPDATE, CONFIG_KEY_REBASE); 
config.save();

常量都在ConfigConstants中声明。