नेटिव Git प्रॉक्सी से काम करता है, पर JGit नहीं
JGit एक Java कार्यान्वयन है जिसकी अपनी समर्थित ट्रांसपोर्ट सेटिंग्स हैं। नेटिव Git में http.proxy प्रविष्टि हर Git क्लाइंट के लिए सार्वभौमिक कॉन्फ़िगरेशन नहीं है।
वही रिपॉज़िटरी टर्मिनल में git clone के साथ काम करती है और JGit उपयोग करने वाले अनुप्रयोग में विफल हो जाती है। यह दो कार्यान्वयनों के बीच तुलना है, ज़रूरी नहीं कि एक ही क्लाइंट की काम करने वाली और टूटी हुई प्रति के बीच हो।
JGit का कॉन्फ़िगरेशन संदर्भ कहता है कि प्रॉक्सी कॉन्फ़िगरेशन java.net.ProxySelector के माध्यम से Java की मानक व्यवस्थाओं का उपयोग करता है। केवल इसलिए न मानें कि नेटिव Git का हर HTTP विकल्प लागू है क्योंकि दोनों क्लाइंट Git कॉन्फ़िगरेशन फ़ाइल समझते हैं।
JGit को एम्बेड करने वाले अनुप्रयोग, उसके संस्करण और चुने गए HTTP ट्रांसपोर्ट की पहचान करें। होस्ट अनुप्रयोग JGit के स्वतंत्र डिफ़ॉल्ट से आगे की सेटिंग्स या व्यवहार दे सकता है।
फिर उस प्रक्रिया को दिखने वाला Java प्रॉक्सी कॉन्फ़िगरेशन जाँचें। URLConnection-आधारित HTTP ट्रांसपोर्ट के लिए, उसके द्वारा उपयोग किए जाने वाले JVM होस्ट और पोर्ट गुण देखें। अनुप्रयोग शुरू होने के बाद किसी असंबंधित टर्मिनल में दर्ज गुण चल रहे JVM को पुनः कॉन्फ़िगर नहीं कर सकता। IDE का नेटिव Git ऑपरेशन और उसका JGit ऑपरेशन भी अलग रास्ते ले सकते हैं।
प्रॉक्सी प्रमाणीकरण को मार्ग चयन से अलग रखें। होस्ट और पोर्ट पहचानने वाले Java प्रॉक्सी गुण स्वतः प्रॉक्सी पासवर्ड योजना लागू नहीं करते। होस्ट अनुप्रयोग की समर्थित प्रमाणीकरण व्यवस्था का उपयोग करें।
उपयोगी प्रश्न यह है कि “इस JGit अनुरोध ने कौन-सा प्रॉक्सी चुना?”, न कि “क्या मेरे Git कॉन्फ़िगरेशन में प्रॉक्सी पंक्ति है?”। नेटिव Git की सफलता एक मूल्यवान तुलना है, पर वह कार्यान्वयन-विशिष्ट प्रश्न का उत्तर नहीं देती।