14

TortoiseHgでgit+sshプロトコルを使用して、個人用フォークをgithubに複製しようとしています。それは私にかなり奇妙なエラーを与えています。これがコマンドです

hg clone git+ssh://git@github.com:myusername/thefork.git

これは、hg-gitモジュールをインストールした後のことであり、git://構文を使用してクローンを作成することは問題なく機能します。しかし、sshに問題があると思います。私が得ているエラーはこれです。

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

このようにsshコマンドをmercurial.iniファイルに手動で追加してみました

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

しかし、それでも同じエラーが発生します。何か案は?

アップデート1

Git Bashシェルから同じコマンドを実行すると、問題なく動作します。私はこれを取得します。

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を見つけることができ、キーがすでにインポートされているためだと思います。ssh.exeのパスをWindowsコマンドプロンプトのパスに追加すると、前のエラーの代わりにこれが表示されます。

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

mercurial.iniで代替のsshパスを指定しましたが、特にssh.exeを探しているようです。しかし、ここでの私の推測では、その構成はssh対応のMercurialサーバー専用であり、hg-gitプラグインには適用されません。

4

5 に答える 5

8

私はこれを回避する方法を見つけましたが、それはかなりハックです。ProcessMonitorがいくつかの異なるパスでssh.exeを探していることを示していることに気付いたので、TortoiseHgフォルダーにTortoisePlink.exeをコピーして、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

したがって、メインのPuTTyインストールに付属しているpageant.exeを入手する必要があります。それを起動し、それにキーを追加します。次に、cloneコマンドを再度実行すると、正常に認証されます。

于 2010-04-04T15:17:43.240 に答える
2

これを解決するために何時間も費やした後、私はそれを完全に説明しているガイドを見つけました。

これはURLです:http: //www.codeproject.com/Articles/376058/Step-by-step-Setup-TortoiseHg-for-gitHub

ガイドに記載されていないことの1つは、TortoiseHGにバンドルされている32ビットバージョンのPageantは、URLの「git @」部分を認識できず、それを要求し続けることです。Pageantの64ビットバージョンをダウンロードすると、このバグが修正されます。

64ビットのページェントをダウンロード: https ://splunk.net/w/PuTTy64bit

TortoiseHGに64ビットPageantを含めるためのチケットを開きました: https ://bitbucket.org/tortoisehg/thg/issue/2145/bundle-64-bit-pageant-with-64-bit

于 2012-09-13T13:54:57.397 に答える
1

Pageantを起動してSSHキーをロードし、最初にコマンドラインを使用してクローンを作成する必要があることがわかりました。例:

hg clone git+ssh://git@github.com/<username>/<repo>.git

しかし、それ以降は、GitHubに対してTortoiseHg(プッシュとプル)を問題なく使用できます(ただし、認証を機能させるには、Pageantを実行する必要があります)。

于 2011-06-29T19:40:45.687 に答える
0

TortoisePlink.exeをssh.exeにコピーすることで、この問題を解決しました。次に、ssh.exeをパスに配置しました。ページェントが実行されている限り、それは私のために働きます。

パスにssh.exeが必要だったので、hggitがssh=行を読み取ることさえできるのではないかと思います。

これはまだハックですが、@ Nathanのテクニックよりも少しハックではありません(私は\ Program Files内のファイルをいじるのが好きではありません)

于 2011-02-10T22:56:06.203 に答える
0

「TortoisePlink.exe」の代わりに「plink.exe」と「pageant.exe」を使用しています。「pageant.exe」は、「plink.exe」が必要なときにパスフレーズを自動的に提供します。

于 2010-04-04T11:57:00.023 に答える