2010-04-04 30 views
13

Tôi đang cố gắng sao chép ngã ba cá nhân của tôi trên github bằng cách sử dụng giao thức git + ssh với TortoiseHg. Nó cho tôi một lỗi khá kỳ lạ. Đây là lệnhNhân bản kho lưu trữ github đọc-ghi bằng cách sử dụng TortoiseHg

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

Đây là sau khi tôi đã cài đặt mô-đun hg-git và nó hoạt động tốt để sao chép bằng cú pháp git: //. Nhưng tôi tin rằng nó đang gặp rắc rối với ssh. Lỗi tôi nhận được là cái này.

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

Tôi đã thử thêm bằng tay lệnh ssh vào file mercurial.ini như thế này

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

Nhưng tôi vẫn nhận được lỗi tương tự. Bất kỳ ý tưởng?

Cập nhật 1

Nếu tôi chạy lệnh tương tự từ Git Bash shell nó hoạt động tốt. Tôi hiểu rồi.

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 

Tôi giả sử đó là vì nó có thể tìm thấy ssh.exe và khóa của tôi đã được nhập. Tôi có thể thêm đường dẫn của ssh.exe vào cửa sổ lệnh nhắc đường dẫn và sau đó thay vì lỗi trước đó tôi nhận được điều này.

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

Dường như nó đang tìm kiếm cụ thể cho ssh.exe eventhough Tôi đã chỉ định đường dẫn ssh thay thế trong mercurial.ini. Nhưng dự đoán của tôi ở đây là cấu hình đó chỉ dành cho một máy chủ được kích hoạt bằng ssh và không áp dụng cho plugin hg-git.

+0

Lưu ý để tự - hãy kiên nhẫn. Một khi tôi đã học để chờ đợi trong 5 phút hoặc lâu hơn nó có thể làm để sao chép một repo rất lớn, hg-git làm việc tốt. –

Trả lời

8

Tôi đã tìm thấy một cách để giải quyết vấn đề này nhưng nó khá đáng sợ. Tôi nhận thấy rằng ProcessMonitor đã được hiển thị nó tìm kiếm ssh.exe trong một số đường dẫn khác nhau vì vậy tôi sao chép TortoisePlink.exe trong thư mục TortoiseHg và đặt tên nó là ssh.exe.

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

Chỉ với thay đổi này, nó sẽ không thực hiện được xác thực. Bạn sẽ nhận được một hộp pop-up và điều này.

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

Vì vậy, bạn cần lưu giữ pageant.exe that comes with the main PuTTy install. Bắt đầu lên và thêm khóa của bạn vào đó. Sau đó chạy lệnh clone một lần nữa và nó sẽ xác thực tốt.

+0

Bước sao chép không cần thiết trên hộp của tôi. Chỉ cần cài đặt putty-0.60-installer.exe từ liên kết @Nathan được cung cấp, và sau đó khởi chạy pageant.exe từ menu Bắt đầu. Sau đó bạn có thể thêm khóa GitHub của bạn vào đó. –

0

Tôi đang sử dụng "plink.exe" và "pageant.exe" thay vì "TortoisePlink.exe". "pageant.exe" cung cấp cụm từ mật khẩu tự động khi "plink.exe" cần đến nó.

+0

Cấu hình bạn đang sử dụng trong mercurial.ini là gì? Tôi đã thử plink.exe từ bản phân phối PuTTY thông thường nhưng tôi gặp lỗi tương tự. –

0

Tôi đã giải quyết sự cố này bằng cách sao chép TortoisePlink.exe vào ssh.exe. Sau đó, tôi đặt ssh.exe trong đường dẫn của tôi. Miễn là cuộc thi đang chạy, điều đó có hiệu quả đối với tôi.

Cho rằng tôi cần ssh.exe trong đường dẫn của tôi, tôi tự hỏi, nếu hggit thậm chí đọc dòng ssh = ở tất cả.

này vẫn hackish, nhưng một chút ít hackish hơn @ kỹ thuật của Nathan (Tôi không phải là fan hâm mộ của rối tung với các tập tin bên trong \ Program Files)

0

tôi thấy tôi đã phải khởi động Pageant và tải trọng SSH của tôi và sau đó ban đầu sao chép sử dụng dòng lệnh ví dụ:

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

Nhưng từ đó tôi có thể sử dụng TortoiseHg chống GitHub (đẩy và kéo) tốt (mặc dù Pageant cần chạy để xác thực hoạt động).

2

Sau khi dành hàng giờ liền để giải quyết vấn đề này, tôi đã tìm thấy một hướng dẫn đã giải thích nó hoàn hảo.

Đây là URL: http://www.codeproject.com/Articles/376058/Step-by-step-Setup-TortoiseHg-for-gitHub

Một điều không được đề cập trong hướng dẫn là các phiên bản 32-bit của Pageant kèm với TortoiseHG không thể nhận ra "git @" tham gia vào một địa chỉ, và giữ yêu cầu nó. Tải xuống phiên bản 64 bit của Pageant sẽ sửa lỗi này.

Tải về 64-bit Pageant: https://splunk.net/w/PuTTy64bit

tôi đã mở một vé cho bao gồm Pageant 64-bit với TortoiseHG: https://bitbucket.org/tortoisehg/thg/issue/2145/bundle-64-bit-pageant-with-64-bit

+0

Điều này có vẻ ổn với THG v2.5.1. Cuộc thi của tôi là .x64 và tôi chưa chạm vào nó. –

Các vấn đề liên quan