CopSSHがセットアップされたWindowsServer2008マシン(iis7)があります。これに接続するために、Mercurial 1.5.1(およびTortoiseHg)がインストールされたWindows7マシンがあります。
非標準のsshポートと.ppkファイルを使用してPuTTYを使用してサーバーに接続できます。したがって、サーバーをSSHで接続できることはわかっています。
次に、CLIを使用してhg clone経由で接続し、プライベートリポジトリを取得したいと思いました。Mercurial.iniファイルにsshを設定する必要があることを他の場所で確認したので、mercurial.iniには次の行があります。ssh = plink.exe -ssh -C -l username -P #### -i "C:/Program Files/PuTTY/Key Files/KyleKey.ppk"
注:
username
copSSHを介して設定したユーザー名が入力されています。
####
copSSH用に定義した非標準のsshポートで埋められます。
コマンドを実行しようとしましたが、次のhg clone ssh://inthom.com
エラーが発生します。
remote: bash: inthom.com: command not found
abort: no suitable response from remote hg!
hgまたはplinkがホスト名を解析して、inthom.comがssh先のサーバーではなくコマンドであると見なすように見えます。それは本当に奇妙です。
次に、plinkを使用して接続しようとするとplink -P #### ssh://inthom.com
、ユーザー名と次のパスワードの入力を求められます。両方を入力すると、次のエラーが発生します。
bash: ssh://inthom.com: No such file or directory
そのため、plinkがホスト名を正しく解析していないように見えます。
空のssh://フィールドを使用してhg cloneを呼び出す方法を理解しようとしばらくいじくり回しましたが、最終的に、このコマンドを使用してサーバーにアクセスし、inthom.comサーバーにテストリポジトリのクローンを作成できることがわかりました。
hg clone ssh://!/Repos/test
!
は、ホスト名を空白のままにして、クローンを作成するリポジトリフォルダーを指定することを目的とした文字です。
私が本当に理解していないのは、plinkがどのサーバーにSSH接続するかをどのように知っているかということです。私のmercurial.iniもコマンドもサーバーを指定していません。hg clone
私が見た例のどれにも!
特徴がありません。それらはすべて意味のあるアドレスを使用するため、クローンを作成するsshを介して任意のリポジトリに接続できます。
私の唯一の推測では、PuTTYを使用してSSHで接続した最後のサーバーがデフォルトになっていますが、別のサーバーにSSHで接続し、plinkを使用してアクセスしようとしましたが、plinkはデフォルトでinthom.comになります( -v arg to plink)。そのため、plinkがこのサーバー値を取得する方法については途方に暮れています。
「楽しい」ために、TortoiseHgを使用してみssh://!/Repos/test
ましたが、ソースとして使用する場合にのみリポジトリのクローンを作成できます。
これで、plinkがホスト名を正しく解析しないため、username @ inthom.com:####のようなホスト名ではなく、mercurial.iniファイルでポート番号とユーザー名を指定する必要があったことがわかります。あなたが期待するだろう。これを最初に理解しようとすると、ホストに到達できないというエラーが発生するため、私は非常識になりました。
私の質問は、ssh://username@inthom.com:#### / Repos / testがコピーするユーザー名、ホスト名、ポート番号、およびリポジトリとして正しく解析されるようにセットアップを構成するにはどうすればよいですか?使用しているplinkのバージョンに問題がありますか、それとも設定が混乱している可能性がありますか?それがplinkのせいである場合、私が使用できる代替ツールはありますか?
この同じリポジトリに接続するように友人を設定しようとしているので、この!
ビジネスではなく、クリーンなソリューションが必要です。特に、plinkがこのデフォルトのサーバーを取得する方法がわからない場合は、彼がinthom.comに正しくアクセスできるかどうかさえわかりません。
PS。この段階に到達するためにも、さまざまなチュートリアルを使用する必要がありました。したがって、私はまだサーバーに変更をプッシュしようとはしていません。うまくいけば、これを理解してから、リポジトリに変更をプッシュしてみることができます。