में ज्ञात_होस्ट को कॉन्फ़िगर करना स्रोत नियंत्रण के लिए गिटोलाइट के साथ jgit का उपयोग करना, मेरे पास एक ऐसा एप्लिकेशन है जो कमांड पर कुछ कोड उत्पन्न करता है और जिसे हम स्रोत नियंत्रण के लिए प्रतिबद्ध होना चाहते हैं। लक्ष्य एक तेज आगे खींचने के लिए है, नया कोड प्रतिबद्ध है, और फिर इसे धक्का।jgit
मैं निम्न विधि है:
private void commitToGitRepository(String updateComment, Config config)
throws IOException, NoFilepatternException, GitAPIException
{
if(git == null)
{
git = Git.open(new File(config.getDpuCheckoutDir()));
}
PullCommand pull = git.pull();
pull.call();
}
इस विधि निम्न अपवादों के साथ, pull.call()
विधि कॉल पर विफल रहता है:
com.jcraft.jsch.JSchException: UnknownHostKey: www.somehost.com. RSA key fingerprint is 9d:92:a9:c5:5d:cb:5f:dc:57:ff:38:7e:34:31:fe:75
at com.jcraft.jsch.Session.checkHost(Session.java:748)
at com.jcraft.jsch.Session.connect(Session.java:319)
at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116)
at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:121)
at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:248)
at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:147)
at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1104)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:128)
at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:245)
at net.intellidata.dpu.controller.schema.EntityMappingController.commitToGitRepository(EntityMappingController.java:149)
... (truncated where it meets my code)
तरह से मैं इस पढ़ें, यह है कि यह नहीं मिल रहा है लगता है user_home/.git
में मेरी ज्ञात_होस्ट फ़ाइल। हालांकि, मैं एक घंटे की खोज कर रहा हूं और मुझे जेएसआईटी को कॉन्फ़िगर करने का कोई तरीका नहीं मिल रहा है ताकि जेएसएच को ज्ञात_होस्ट फ़ाइल की तलाश करनी पड़े।
सुझाव? मैं जानता हूँ कि उत्पत्ति के लिए प्रविष्टि मौजूद है में मेरी known_hosts फ़ाइल
आप, महोदय, एक प्रतिभाशाली हैं। मैं दीवार के खिलाफ अपना सिर मार रहा था, यह पता लगाने की कोशिश कर रहा था कि यह ज्ञात_होस्ट्स प्रविष्टि को क्यों पहचान नहीं रहा था जब मुझे अचानक एहसास हुआ कि, क्योंकि मैं इसे विंडोज़ सेवा के रूप में टोमकैट में चला रहा हूं, जेएसएच (और विस्तार से जेजीआईटी) था _my_ उपयोगकर्ता फ़ोल्डर में नहीं दिख रहा है, लेकिन .ssh फ़ोल्डर के लिए _SYSTEM_ खाते के होम फ़ोल्डर में। इस मामले में मैं आगे बढ़ गया और बस एसएसएच फ़ोल्डर को सिस्टम होम फोल्डर में कॉपी किया क्योंकि टॉमकैट केवल मेरी मशीन पर विकास और परीक्षण उद्देश्यों के लिए चलाता है (शायद सबसे अच्छी सुरक्षा नीति नहीं है लेकिन जोखिम इस मामले में न्यूनतम है)। धन्यवाद! – StormeHawke
@StormeHawke उत्कृष्ट! मैंने अधिक दृश्यता के उत्तर में आपकी टिप्पणी शामिल की है। आपके सिस्टम खाते के लिए निर्देशिका क्या थी? मैंने कुछ सुझाव दिए हैं, लेकिन मुझे सही स्थान की जानकारी नहीं है। – VonC
इस कॉल के अनुसार: 'System.out.println (System.getProperty (" user.home ")); विंडोज 7 के लिए डिफ़ॉल्ट सिस्टम होम निर्देशिका (और संभवतः किसी भी अन्य एनटी-आधारित विंडोज सिस्टम) बस' सी है : \\ ' – StormeHawke