我正在开发一个Eclipse插件,用户可以通过这个插件登录并使用一些git存储库(通过ssh和用户/密码凭据),这些存储库可以在窗帘后面访问。用户不知道他们的ssh密码。
这些用户只能访问git存储库。当其中一个用户第一次登录计算机时,git会被拉到本地计算机上。到目前为止没有问题。当用户注销时,为了提高效率,我希望在本机上保留此本地副本。我的问题从此开始。
当另一个用户登录时,我从本地副本中检索git对象,不幸的是(对我来说),它包含为第一个用户设置的URI。
有没有办法设置org.eclipse.jgit.api.Git对象的URI。
我尝试以下代码但没有成功。设置URI thii方式抛出org.eclipse.jgit.api.errors.InvalidConfigurationException:没有键远程值
此代码(不设置URI)按预期为同一用户工作。它会从远程更新本地副本。
Git git = Git.open(new File("PATH" + "/.git"));
git.pull()
.setTransportConfigCallback(new TransportConfigCallback() {
@Override
public void configure( Transport transport ) {
if( transport instanceof SshTransport ) {
SshTransport sshTransport = ( SshTransport )transport;
sshTransport.setSshSessionFactory(new JschConfigSessionFactory() {
@Override
protected void configure(Host hc, Session session) {
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("password");
}
});
}
}
})
.setRemote(remoteURI)
.call();