我有一个围绕Git的包装器,它被设计为一次提交和推送单个文件。这是一个间歇性问题,而不是提交单个文件,repo中的所有文件都被暂存以便删除,并被推送到服务器。
这个操作是通过web服务调用的,所以我最初怀疑某种竞争条件,但是我synchronized
执行提交的方法仍然偶尔发生。
添加代码是
for (RepoFile file : commit.getFiles())
{
final String gitFilePattern = getGitFilePattern(file.getFileName());
LOG.info("Adding file pattern: " + gitFilePattern);
git.add().addFilepattern(gitFilePattern).call();
}
提交代码是
RevCommit call = git.commit().setMessage(comment).setAuthor(name, email).call();
String commitId = call.getId().name();
PushCommand push = git.push();
push.setTransportConfigCallback(SSHTransportProducer.produce(PropertiesService.getProperty("SSH_PASSPHRASE"), PropertiesService.getProperty("SSH_KEY")));
push.call();
有什么可能导致这种情况的想法?