2010-04-04 13 views
13

का उपयोग कर एक पठन-लेखन जिथब रिपोजिटरी क्लोन करना मैं टोर्टोइज एचजी के साथ गिट + एसएसएच प्रोटोकॉल का उपयोग करके जिथब पर अपने व्यक्तिगत कांटा को क्लोन करने की कोशिश कर रहा हूं। यह मुझे एक अजीब त्रुटि दे रहा है। // वाक्य रचना: यहाँ आदेशTortoiseHg

hg clone git+ssh://[email protected]:myusername/thefork.git 

इस के बाद मैं एचजी-Git मॉड्यूल स्थापित किया है और यह Git का उपयोग कर क्लोन करने के लिए बस ठीक काम करता है है। लेकिन मुझे विश्वास है कि एसएसएच के साथ परेशानी हो रही है। मुझे जो त्रुटि मिल रही है वह यह है।

importing Hg objects into Git 
[Error 2] The system cannot find the file specified 

मैं मैन्युअल रूप से इस

[ui] 
username = [email protected] 
ssh="C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "C:\Source\SSHPrivateKey.ppk" 

तरह mercurial.ini फ़ाइल में ssh आदेश जोड़ने की कोशिश की है लेकिन मैं अभी भी एक ही त्रुटि मिलती है। कोई विचार?

अद्यतन 1

अगर मैं Git बैश से एक ही आदेश चला शैल यह सिर्फ ठीक काम करता है। मैंने इसे प्राप्त किया।

importing Hg objects into Git 
Counting objects: 1559, done. 
Compressing objects: 100% (586/586), done. 
Total 1559 (delta 960), reused 1534 (delta 947) 
importing Git objects into Hg 
at: 0/86 
updating to branch default 
219 files updated, 0 files merged, 0 files removed, 0 files unresolved 

मैं क्योंकि यह ssh.exe पा सकते हैं और मेरे कुंजी पहले से आयात किया जाता है यह है यह सोचते हैं रहा हूँ। मैं windows कमांड को ssh.exe का पथ जोड़ सकता हूं पथ को संकेत देता है और फिर पिछली त्रुटि के बजाय मुझे यह मिलता है।

importing Hg objects into Git 
Permission denied (publickey). 
abort: the remote end hung up unexpectedly 

यह है कि यह ssh.exe लिए विशेष रूप से रहा है eventhough मैं mercurial.ini में वैकल्पिक ssh पथ निर्दिष्ट किया है लगता है। लेकिन मेरा अनुमान यह है कि कॉन्फ़िगरेशन केवल एक एसएसएच सक्षम Mercurial सर्वर के लिए है और एचजी-गिट प्लगइन पर लागू नहीं होता है।

+0

नोट - धैर्य रखें। एक बार मैंने 5 मिनट का इंतजार करना सीखा या तो यह बहुत बड़ा रेपो क्लोन करने के लिए ले जा सकता है, एचजी-गिट ठीक काम करता है। –

उत्तर

8

मुझे इसके आसपास एक रास्ता मिला है लेकिन यह बहुत हैकिश है। मैंने देखा कि ProcessMonitor इसे कई अलग-अलग पथों में ssh.exe की तलाश में दिखा रहा था, इसलिए मैंने TortoisePlink.exe को TortoiseHg फ़ोल्डर में कॉपी किया और इसे ssh.exe नाम दिया।

copy "C:\Program Files\TortoiseHg\TortoisePlink.exe" "C:\Program Files\TortoiseHg\ssh.exe" 

इस बदलाव के साथ यह अभी भी प्रमाणीकरण में विफल रहेगा। आपको एक पॉप-अप बॉक्स और यह मिल जाएगा।

importing Hg objects into Git 
abort: the remote end hung up unexpectedly 

तो आपको pageant.exe that comes with the main PuTTy install की पकड़ प्राप्त करने की आवश्यकता है। इसे शुरू करें और अपनी कुंजी जोड़ें। फिर क्लोन कमांड को दोबारा चलाएं और इसे ठीक से प्रमाणित करना चाहिए।

+0

कॉपी बॉक्स मेरे बॉक्स पर आवश्यक नहीं है। बस @Nathan लिंक से Putty-0.60-installer.exe इंस्टॉल करें, और फिर स्टार्ट मेनू से pageant.exe लॉन्च करें। उसके बाद आप अपनी गिटहब कुंजी जोड़ सकते हैं। –

0

मैं "tortoisePlink.exe" के बजाय "plink.exe" और "pageant.exe" का उपयोग कर रहा हूं। "pageant.exe" स्वचालित रूप से पास वाक्यांश प्रदान करता है जब "plink.exe" को इसकी आवश्यकता होती है।

+0

mercurial.ini में आप जिस कॉन्फ़िगरेशन का उपयोग कर रहे हैं वह क्या है? मैंने नियमित पुटी वितरण से plink.exe को आजमाया है, लेकिन मुझे एक ही त्रुटि मिलती है। –

0

मैंने tortoisePlink.exe को ssh.exe पर कॉपी करके इस समस्या को हल किया। तब मैंने अपने रास्ते में ssh.exe रखा। जब तक पेजेंट चल रहा है, वह मेरे लिए काम करता है।

यह देखते हुए कि मुझे अपने रास्ते में ssh.exe की आवश्यकता है, मुझे आश्चर्य है कि अगर हेगिट भी एसएसएच = लाइन को पढ़ता है।

यह अभी भी hackish एक छोटे से कम से कम @ नाथन के तकनीक hackish है, लेकिन

0

(मैं \ Program Files अंदर फाइलों के साथ खिलवाड़ के एक प्रशंसक नहीं हूँ) मैंने पाया मैं तमाशा का शुभारंभ और मेरे SSH कुंजी लोड करने के लिए किया था और उसके बाद प्रारंभ में क्लोन कमांड लाइन उदाहरण का उपयोग कर:

hg clone git+ssh://[email protected]/<username>/<repo>.git 

लेकिन फिर से (हालांकि तमाशा चल किए जाने की आवश्यकता प्रमाणीकरण काम करने के लिए) मैं GitHub (पुश और पुल) ठीक खिलाफ TortoiseHg इस्तेमाल कर सकते हैं पर।

2

इसे हल करने के लिए घंटों और घंटों खर्च करने के बाद, मुझे एक गाइड मिला है जो इसे पूरी तरह समझाता है।

यह URL है: http://www.codeproject.com/Articles/376058/Step-by-step-Setup-TortoiseHg-for-gitHub

एक बात गाइड में उल्लेख नहीं किया, कि TortoiseHG के साथ बंडल तमाशा के 32-बिट संस्करण एक यूआरएल में "Git @" भाग नहीं पहचान सकते है और के लिए कहता रहता है यह। पेजेंट के 64-बिट संस्करण को डाउनलोड करने से यह बग ठीक हो जाता है।

डाउनलोड 64-बिट तमाशा: https://splunk.net/w/PuTTy64bit

मैं TortoiseHG साथ 64-बिट तमाशा सहित के लिए एक टिकट खोल दिया है: स्वयं को https://bitbucket.org/tortoisehg/thg/issue/2145/bundle-64-bit-pageant-with-64-bit

+0

यह THG v2.5.1 के साथ ठीक प्रतीत होता है। मेरा पेजेंट .x64 है और मैंने इसे छुआ नहीं है। –