Izvorni Git radi kroz proxy, ali JGit ne
JGit je Java implementacija s vlastitim podržanim postavkama prijenosa. Unos http.proxy u izvornom Gitu nije univerzalna konfiguracija za svakog Git klijenta.
Isti repozitorij radi s git clone u terminalu, a ne uspijeva u aplikaciji koja rabi JGit. To je usporedba dviju implementacija, a ne nužno ispravne i pokvarene kopije istog klijenta.
JGitova referenca za konfiguraciju kaže da konfiguracija proxyja rabi standardne Java mehanizme preko java.net.ProxySelector. Ne pretpostavljajte da je svaka HTTP opcija izvornog Gita implementirana samo zato što oba klijenta razumiju Git konfiguracijsku datoteku.
Prepoznajte aplikaciju koja ugrađuje JGit, njezinu verziju i odabrani HTTP prijenos. Aplikacija domaćin može pružiti postavke ili ponašanje izvan JGitovih samostalnih zadanih vrijednosti.
Zatim pregledajte Java proxy konfiguraciju vidljivu tom procesu. Za HTTP prijenos temeljen na URLConnection provjerite JVM svojstva hosta i porta koja rabi. Svojstvo uneseno u nepovezani terminal nakon pokretanja aplikacije ne može rekonfigurirati JVM koji radi. Izvorna Git operacija u IDE-u i njegova JGit operacija također mogu rabiti različite putanje.
Držite proxy autentikaciju odvojeno od odabira rute. Java proxy svojstva koja označavaju host i port ne implementiraju automatski shemu proxy lozinke. Rabite podržani mehanizam autentikacije aplikacije koja ugrađuje JGit.
Korisno je pitanje “koji je proxy odabran za ovaj JGit zahtjev?”, a ne “sadrži li moja Git konfiguracija proxy redak?”. Uspjeh izvornog Gita vrijedna je usporedba, ali ne odgovara na to pitanje specifično za implementaciju.