Native Git virker gennem proxyen, men JGit gør ikke
JGit er en Java-implementering med sine egne understøttede transportindstillinger. En http.proxy-post i native Git er ikke en universel konfiguration for enhver Git-klient.
Det samme lager virker med git clone i en terminal og fejler i et program, der bruger JGit. Det er en sammenligning mellem to implementeringer, ikke nødvendigvis mellem en fungerende og en ødelagt kopi af samme klient.
JGit-konfigurationsreferencen siger, at proxykonfiguration bruger Javas standardmekanismer gennem java.net.ProxySelector. Antag ikke, at enhver HTTP-indstilling i native Git er implementeret, blot fordi begge klienter forstår en Git-konfigurationsfil.
Identificer det program, der indlejrer JGit, dets version og den valgte HTTP-transport. Værtsprogrammet kan levere indstillinger eller adfærd ud over JGit-standarden.
Undersøg derefter den Java-proxykonfiguration, der er synlig for processen. For en URLConnection-baseret HTTP-transport skal du kontrollere de JVM-værts- og portegenskaber, den bruger. En egenskab, der indtastes i en urelateret terminal, efter at programmet er startet, kan ikke omkonfigurere den kørende JVM. En IDE's native Git-handling og dens JGit-handling kan også bruge forskellige veje.
Hold proxyautentificering adskilt fra rutvalg. Java-proxyegenskaber, der angiver vært og port, implementerer ikke automatisk et proxyadgangskodeskema. Brug værtsprogrammets understøttede godkendelsesmekanisme.
Det nyttige spørgsmål er “hvilken proxy valgte denne JGit-anmodning?”, ikke “indeholder min Git-konfiguration en proxylinje?”. En native Git-succes er en værdifuld sammenligning, men den besvarer ikke det implementationsspecifikke spørgsmål.