如何更改Git的URI(jgit)

时间:2015-02-16 22:22:15

标签: java eclipse git ssh jgit

我正在开发一个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();

0 个答案:

没有答案