Using native git not jgit in Eclipse git?

2019-01-19 14:29发布

问题:

Is there any way to configure egit to use your native (OS) git and not the jgit implementation? If not, are there any alternative git Eclipse plugins?

EDIT #1 - I should note, AWS CodeCommit uses a credential helper for auth, from .gitconfig:

[credential]
    helper = !/usr/local/bin/aws --profile CodeCommitProfile codecommit credential-helper $@
    UseHttpPath = true

I'm guessing this is something specific to CodeCommit and is not in jgit.

回答1:

EGit strictly uses JGit, the Java implementation of Git.

The Git plugin in Aptana Sudio3 seems to be embedded in the product sources (github.com/aptana/studio3), but uses a native Git.

There is a class jgit.transport.AmazonS3, as illustrated in this question and this one (setting IAM).

There is an interesting discussion in this thread which can offer a clue as to what to patch:

Having looked at how JGit access the S3 host, JGit tries to access the bucket using virtual hosted style requests - http://bucketname.s3.amazonaws.com/ - this request style works fine with buckets in the US Standard zone, but for other regions S3 redirects it with HTTP 307 redirect to the correct region.

It seems that jgit does not handle this HTTP 307 redirect correctly, and will need to implement behavior to correctly handle redirects by S3.



回答2:

HTTPS URLs for AWS CodeCommit repositories require credentials that are generated from an AWS secret access key. These credentials expire in ~15 minutes. For command line Git, AWS provides the helper to generate the credentials.

EGit uses JGit. Here's an example of how to generate the credentials from an AWS access key in JGit. The next step would be to use a technique like that and extend EGit to use it.