Native Git werkt via de proxy, JGit niet
JGit is een Java-implementatie met eigen ondersteunde transportinstellingen. Een http.proxy-regel in native Git is geen universele configuratie voor elke Git-client.
Dezelfde repository werkt met git clone in een terminal en faalt in een applicatie die JGit gebruikt. Dat is een vergelijking tussen twee implementaties, niet noodzakelijk tussen een werkende en een kapotte kopie van dezelfde client.
De JGit-configuratiereferentie zegt dat proxyconfiguratie de standaardmechanismen van Java gebruikt via java.net.ProxySelector. Ga er niet van uit dat elke HTTP-optie van native Git is geïmplementeerd alleen omdat beide clients een Git-configuratiebestand begrijpen.
Identificeer de applicatie die JGit insluit, de versie en het gekozen HTTP-transport. De hostapplicatie kan instellingen of gedrag bieden buiten de zelfstandige standaardwaarden van JGit.
Controleer vervolgens de Java-proxyconfiguratie die zichtbaar is voor dat proces. Controleer voor een HTTP-transport op basis van URLConnection de JVM-host- en poorteigenschappen die het gebruikt. Een eigenschap die na de start van de applicatie in een niet-gerelateerde terminal wordt ingevoerd, kan de draaiende JVM niet opnieuw configureren. De native Git-bewerking van een IDE en de JGit-bewerking kunnen ook verschillende paden gebruiken.
Houd proxyauthenticatie gescheiden van routeselectie. Java-proxyeigenschappen die een host en poort aangeven, implementeren niet automatisch een proxypasswoordschema. Gebruik het ondersteunde authenticatiemechanisme van de hostapplicatie.
De nuttige vraag is “welke proxy heeft dit JGit-verzoek gekozen?”, niet “bevat mijn Git-configuratie een proxyregel?”. Een succes met native Git is een waardevolle vergelijking, maar beantwoordt die implementatiespecifieke vraag niet.