2012-03-05 10 views
6

के बाद लटकता है हमारे पास एक विंडोज़ नेटवर्क है और मैं टोर्टोइस मर्कुरियल को प्राप्त करने और हमारी छोटी टीम के उपयोग के लिए केंद्रीय रेपो के लिए एसएसएच पर दौड़ने की कोशिश कर रहा हूं। मैं इसे अधिकांश भाग के लिए काम कर सकता हूं लेकिन सफलतापूर्वक आदेशों को निष्पादित करने के बाद (क्लोन/पुश इत्यादि)विंडोज टोर्टोइज एचजी प्लिंक क्लोन/पुश

मैंने टर्नोइस एचजी के साथ हमारे Widnows 2008 आरसी 2 सर्वर पर फ्रीसेड सेट अप किया है। मैंने खुद को PuttyGen का उपयोग कर सर्वर पर एक सार्वजनिक/निजी कुंजी उत्पन्न की है (क्लाइंट पर उत्पन्न होने वाले मुद्दे थे)। निजी कुंजी मैंने अपने क्लाइंट को कॉपी किया और mercurial.ini अपडेट किया। सार्वजनिक कुंजी वाले फ़ोल्डर में इंगित करने के लिए मैंने सार्वजनिक कुंजी का नाम बदल दिया और फ्रीसेड को अपडेट किया। क्लाइंट साइड पर मैंने पेजेंट के साथ अपनी निजी कुंजी पंजीकृत की है, पुट्टी में एक सत्र बनाया है और इसे मेरी निजी कुंजी पर इंगित करके इसे सहेजा है। जब मैं अपना प्रारंभिक कनेक्शन बनाने के लिए पुट्टी का उपयोग करता हूं, तो चीजें अजीब हो जाती हैं।

मुझे उपयोगकर्ता नाम (पासवर्ड के लिए कोई संकेत नहीं) के लिए कमांड प्रॉम्प्ट मिलता है और कमांड प्रॉम्प्ट (प्रमाणीकरण के बाद) पर, मैं टाइप नहीं कर सकता। शायद पुट्टी के साथ एक मुद्दा। मैं (TortoisePlink.exe) के माध्यम से कछुए का उपयोग करने की कोशिश करूंगा।

mercurial.ini में मेरे पास है: [UI] ssh = "C: \ पोटीन \ TortoisePlink.exe" -ssh -2 -batch -सी मैं C: \ Users \ Jude.ssh \ JudePrivate.ppk

यदि मैं कंसोल का उपयोग करता हूं तो मैं रेपो क्लोन कर सकता हूं लेकिन यह सबकुछ करने के बाद लटकता है। --debug का उपयोग करना, आखिरी पंक्ति है: 3 फाइलें अपडेट की गईं, ओ फाइलें विलय हो गईं, 0 फाइलें हटा दी गईं, 0 फाइलें अनसुलझे

फाइलों के क्लोन के रूप में मुझे क्या उम्मीद होगी। लेकिन फिर मैं कुछ और नहीं कर सकता। Ctrl+C कुछ भी नहीं करता है और मुझे प्रक्रिया को मारना है। (जिस तरह से, फिर कमांड प्रॉम्प्ट पर Ctrl^C और शेष कीबोर्ड मैशिंग दिखाता है)।

रेपो क्लोन हो जाता है, फाइलों का सही संस्करण दिखाई देता है लेकिन कंसोल विंडो बंद नहीं होती है या मुझे वापस नियंत्रण नहीं देती है।

यदि मैं एचजी वर्कबेंच का उपयोग करने का प्रयास करता हूं, तो मुझे एक समान समस्या मिलती है। मैं क्लोन कर सकते हैं और धक्का - यह वास्तव में होता है - लेकिन GUI का उपयोग कर रहा है:

% hg --repository C:\repositories\HgTest push --debug   
ssh://[email protected]:22/d:/repositories/hgtest 
pushing to ssh://[email protected]:22/d:/repositories/hgtest 
running "C:\putty\TortoisePlink.exe" -ssh -2 -batch -C -i 
C:\Users\Jude\.ssh\JudePrivate.ppk [email protected] -P 22 "hg -R d:/repositories/hgtest serve --stdio" 
sending hello command 
sending between command 
remote: 145 
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 
remote: 1 
query 1; heads 
sending batch command 
searching for changes 
all local heads known remotely 
no changes found 
sending listkeys command 
checking for updated bookmarks 
sending listkeys command 

Workbench के शीर्ष पर हरे बार कहते हैं, "ssh करने के लिए धक्का: // जूड @ dev01: 22/डी:/भंडार/hgtest ... "जैसा कि नीचे स्टेटस बार करता है। मैंने इसे इस सप्ताह के अंत में छोड़ दिया और जब मैं वापस आया तो यह अभी भी ऐसा ही था। मैं अभी भी एचजी वर्कबेंच (प्रकार) का उपयोग कर सकता हूं लेकिन पुल/पुश/क्लोन का उपयोग नहीं कर सकता। संदेश में एचजी वर्कबेंच परिणामों को बंद करने की कोशिश कर रहा है (स्टेटस बार में) Sync tab cannot exit और मैं ऐप बंद नहीं कर सकता। TortoisePlink.exe को मारना (या Plink.exe, जो भी मैं कोशिश करता हूं) ऐप को मुक्त करता है जिसे मैं इसका उपयोग कर सकता हूं या इसे सामान्य के रूप में बंद कर सकता हूं।

प्रारंभ में मैंने सोचा कि यह टोर्टोइज एचजी या टोर्टोइज़प्लिंक के साथ एक समस्या थी लेकिन पुटी साइट के परिणाम से प्लिंक डाउनलोड कर रहा था।

स्पष्ट करने के लिए:
- मैं धक्का कर सकते हैं/
SSH के माध्यम से क्लोन और कोई पासवर्ड संकेत - मैं कमांड लाइन या एचजी Workbench
के माध्यम से यह कर सकते हैं - जो विधि का उपयोग मैं का लिहाज किए बिना (या Plink.exe या TortoisePlink.exe) प्रक्रिया को मैन्युअल रूप से मारने की जरूरत है।

सॉफ्टवेयर का इस्तेमाल किया + संस्करणों
क्लाइंट (Windows Vista 32 बिट)
कछुआ एचजी 2.3 (MERC 2.1, पायथन 2.6.6)
Plink 0।62
सर्वर - (विंडोज 2008 सर्वर RC2) ऊपर

खोज के बहुत सारे के रूप में
FreeSSHd 1.2.4
ही कछुआ उपयोग की कुछ भी नहीं सामने आए हैं। मैंने उन सभी सुझावों का प्रयास किया है जो मैंने देखा है (भले ही मामूली रूप से संबंधित हों) लेकिन इसका कोई फायदा नहीं हुआ। चूंकि वास्तविक कार्य काम कर रहे हैं, मुझे लगता है कि मैंने सही ढंग से चाबियाँ, एसएसएच, कछुआ इत्यादि स्थापित की हैं।

मुझे उम्मीद है कि मुझे कहीं एक साधारण विकल्प याद आ रहा है लेकिन मुझे संदेह है कि यह किसी प्रकार के उपयोगकर्ता संकेत का इंतजार कर रहा है।

उंगलियों को पार कर :)

=== अद्यतन ===

मैं पोटीन के लिए ईवेंट लॉग मिल गया है (सही क्लिक पोटीन कंसोल विंडो, देखा, "ईवेंट लॉग" विकल्प। एक बार जब मैं सत्र लोड और खुले क्लिक किया गया है, मैं कंसोल विंडो और प्राप्त एक login as: शीघ्र मेरा नाम लिखकर और बदले मारने के बाद, मैं:। c:\Windows\system32> को मैं कमांड प्रॉम्प्ट परिवर्तन

Reading private key file "C:\Users\Jude\.ssh\JudePrivate.ppk" 
Pageant is running. Requesting keys. 
Failed to get reply from Pageant 
Offered public key 
Offer of public key accepted 
Sent public key signature 
Access granted 
Opened channel for session 
Allocated pty (ospeed 38400bps, ispeed 38400bps) 
Started a shell/command 

और यह इस स्तर पर है और यह कर सकते हैं कुछ भी टाइप नहीं करें।

=== अद्यतन 2 ===

का उपयोग plink मैं कंसोल पर निम्न कार्य करें:

plink -v -ssh [email protected] "cmd /c echo hello"

और, साथ ही सभी जानकारी -v देता है, मैं hello देखें Server sent command exist status 0 और Disconnected: All channels closed। यही वह है जो मैं उम्मीद करता हूं।

अगर मैं इसे कछुए के साथ करता हूं, तो 'tortoiseplink-v -shsh Jude @ dev01 "cmd/c echo हैलो' 'मुझे कुछ भी वापस नहीं देखा गया है या खिड़की पर लिखा गया है और मुझे फिर से कमांड प्रॉम्प्ट मिलता है। के रूप में अन्य नाम (dev01) है

इसका मतलब है SSH काम कर रहा है। लेकिन क्या मुझे TortoisePlink का उपयोग करते समय कुछ देखना चाहिए?

परीक्षण फ़ोल्डर के लिए फिर से hg clone --verbose -- ssh://[email protected]/d:/repositories/hgtest C:\repositories\test लिखने को हासिल करेगा फ़ाइलें, प्रतियां उन्हें लेकिन फिर कमांड प्रॉम्प्ट वापस नहीं करता है। अंतिम पंक्ति 3 files updated... आदि

=== अद्यतन 3 ===

ऐसा लगता है hg.exe सर्वर पर FreeSSHd द्वारा पैदा की है और यह करीब/खत्म करता है। जब सर्वर पर hg.exe प्रक्रिया मारे जाती है, क्लाइंट (कंसोल/क्लोन संवाद बॉक्स) व्यवहार करता है और आदेश को गर्वपूर्वक समाप्त करता है।

स्पष्ट करने के लिए:

  1. मैं कमांड लाइन या HG Workbench से क्लोन का उपयोग करें और लॉग सब कुछ ठीक है, मैं कर रहा हूँ प्रमाणीकृत है के अनुसार रेपो उर्फ ​​
  2. निर्दिष्ट करते हैं, फ़ाइलों SSH के माध्यम से नीचे खींच लिया जाता है और स्थानीय रेपो मैं 1
  3. में निर्दिष्ट इस बिंदु यह लटका हुआ है पर में कॉपी किया है - चाहे कंसोल या HG Workbench या राइट क्लिक/क्लोन विकल्प।
  4. सर्वर पर प्रक्रिया एक्सप्लोरर का उपयोग करने से मुझे एचजी को मारने की अनुमति मिलती है।फ्रीएसएसएचडी सेवा
  5. द्वारा उत्पन्न exe जैसे ही ग्राहक यह कहता है कि "आदेश सफलतापूर्वक पूरा हुआ"।

तो, अब यह सर्वर पर टोर्टोइज एचजी के साथ एक मुद्दा प्रतीत होता है। हो सकता है कि FreeSSHd और कछुआ अच्छी तरह से एक साथ खेलते हैं नहीं ... मुझे लगता है कि मैं सब कुछ फिर से स्थापित होगा ...

=== अद्यतन 4 ===

ऐसा लगता है कि मैं इस के साथ केवल एक नहीं हूँ मुद्दा। मैंने इसे एसओ पर पहले देखा था लेकिन उस समय यह प्रासंगिक नहीं था। हालांकि, अब मुझे एक ही समस्या मिल रही है: Mercurial over ssh client and server on Windows उस समस्या को हल नहीं किया गया था (दो साल पहले) तो क्या मैं यह प्रश्न खुला रखूंगा?

+0

http के लिए -l विकल्प का उपयोग करता है .selenic.com/wiki/accessingSshRepositoriesFromWindows –

+0

पहले से ही लिंक बुकमार्क किया गया है और इसके माध्यम से इसका पालन किया है। यह इसे ठीक से सेट करता है - लेकिन समस्या निवारण में मदद नहीं करता है ... – Jag

+0

2010 से लिंक ** फ्रीएसएसएसएचडी ** Mercurial के लिए सेटिंग्स - http://opapao.blogspot.com/2010/02/setting-up-freesshd-to -work-with.html, लेकिन कुछ तरीकों से प्रासंगिक हो सकता है –

उत्तर

2
  1. सबसे पहले - दस्तावेज़ पढ़ें! // तेज:

    hg help urls 
    Valid URLs are of the form: 
    
    .... 
    
    ssh://[[email protected]]host[:port]/[path][#revision] 
    
  2. Plink उपयोगकर्ता नाम

  3. डीबग सफल ssh-कनेक्ट (और प्रयोग करने योग्य पथ) शुद्ध TortoisePlink साथ, सभी अनावश्यक विकल्पों को निकाल

+0

मैंने उन दस्तावेज़ों को पढ़ा जो मुझे मिल सकता था - मैं एक विंडोज उपयोगकर्ता हूं और इस प्रकार प्रलेखन के लिए कंसोल का उपयोग करने के लिए उपयोग नहीं किया जाता है। वैसे भी, मैं जो यूआरएल उपयोग कर रहा हूं वह ठीक है। – Jag

+0

@Jag - 1. डिफ़ॉल्ट पोर्ट यूआरएल 2 में बेकार है। मुझे संदेह है कि परिभाषित पथ काम करता है 3. आपको ** कंसोल का उपयोग करना होगा ** प्लिंक-कनेक्शन डीबग करने के लिए 4. -एल विकल्प * आवश्यक है * –

+0

क्या आप मुझे बता सकते हैं कैसे 'ssh: // जुड @ dev01: 22/d:/repositories/hgtest' आपके द्वारा चिपकाए गए यूआरएल प्रारूप से अलग है? मैं -i का उपयोग कर रहा हूं और एक निजी कुंजी निर्दिष्ट कर रहा हूं - यही कारण है कि यह काम करता है। अगर मैं इसे हटा देता हूं तो मुझे 'होस्ट मौजूद नहीं है, रिमोट एचजी से कोई उपयुक्त प्रतिक्रिया नहीं है'। 'plink.exe jude @ dev01' कमांड प्रॉम्प्ट को 'c: \ windows \ system32>' में बदलता है लेकिन मैं कुछ भी टाइप नहीं कर सकता और ctrl + c करना चाहता हूं। कमांड लाइन से tortoiseplink.exe jude @ dev01' मुझे कुछ भी नहीं देता है। कमांड प्रॉम्प्ट 'c: \ putty>' के रूप में बनी हुई है (जहां मैंने पथ में रिक्त स्थान से बचने के लिए कुछ पुटी संबंधित exes की प्रतिलिपि बनाई है)। – Jag

संबंधित मुद्दे