Nativní Git funguje přes proxy, ale JGit ne
JGit je implementace v Javě s vlastním podporovaným nastavením přenosu. Záznam http.proxy v nativním Gitu není univerzální konfigurace pro každého klienta Git.
Stejné úložiště funguje s git clone v terminálu a selhává v aplikaci používající JGit. Jde o srovnání dvou implementací, ne nutně o srovnání funkční a rozbité kopie stejného klienta.
Referenční příručka konfigurace JGit uvádí, že konfigurace proxy používá standardní mechanismy Javy prostřednictvím java.net.ProxySelector. Nepředpokládejte, že každá HTTP volba nativního Gitu je implementována jen proto, že oba klienti rozumí konfiguračnímu souboru Gitu.
Určete aplikaci, která JGit vkládá, její verzi a zvolený HTTP přenos. Hostitelská aplikace může poskytovat nastavení nebo chování nad rámec samostatných výchozích hodnot JGit.
Poté zkontrolujte konfiguraci proxy v Javě, kterou tento proces vidí. U HTTP přenosu založeného na URLConnection zkontrolujte vlastnosti hostitele a portu JVM, které používá. Vlastnost zadaná v nesouvisejícím terminálu po spuštění aplikace nemůže překonfigurovat běžící JVM. Nativní operace Gitu v IDE a její operace JGit také mohou používat různé cesty.
Uchovávejte autentizaci proxy odděleně od volby trasy. Vlastnosti proxy v Javě, které určují hostitele a port, automaticky neimplementují schéma hesla proxy. Použijte podporovaný mechanismus autentizace hostitelské aplikace.
Užitečná otázka zní „kterou proxy tato žádost JGit zvolila?“, nikoli „obsahuje moje konfigurace Gitu řádek proxy?“. Úspěch nativního Gitu je cenné srovnání, ale na tuto otázku specifickou pro implementaci neodpovídá.