2012-01-31 14 views
3

hg pullコマンドでログイン資格情報(Mercurialユーザ名とそのパスワード)を提供する方法はありますか?または、特定のユーザーとのセッションを開始するには、ユーザー名とパスワードを入力する必要がありますか?私はJavaコードとコマンドラインAPIを使用して水銀引き上げプロセスを自動化したい。hg pullでログイン認証情報を提供するには?

リポジトリURLを適切に作成する方法があることがわかります(例:http://user:[email protected]/MercurialRepo)。これは私の場合には適していません。

+0

どのプロトコルを引き継ぐのですか? HTTP、SSH、...? –

+0

ssh(とキー)を使用して解決する必要があります – Thilo

答えて

4

私のguide about remote repositoriesをご覧ください。あなたのオプションは使用するプロトコルに依存します - あなたが与えたURLの例からHTTPを使うように見えます。その場合、あなたは

  • use the auth sectionを使用することができます。これは、限り、あなたはあなたのMercurialの設定ファイルを保護するように安全です。それはすべてのプラットフォームで動作するようにネイティブのMercurialソリューションです。

  • keyring extension:これはあなたのOS以来authセクションでは、ディスク上の暗号化された形式でパスワードを保存することができ、より安全になることができます。この拡張機能はすべてのプラットフォームで動作しますが、TortoiseHgの一部ですが、Mercurial自体はインストールして設定する必要があります。

  • URLにパスワードが埋め込まれています。これは非常に簡単ですが安全性が低く、すでに拒否しています。

最後に、Javaに言及しているので、JavaHgを指摘してください。これは、Mercurialと対話するためのJavaライブラリです。プルとクローンのユーザ名とパスワードを特別なサポートはしていません(まだ)ので、ここではauthセクションを使用することをお勧めします。

+0

マーティンありがとうございます。本当に助かったよ。しかし、リポジトリがSSH上でホストされていて、Javaコードを通じてリポジトリにアクセスしたい場合はどうでしょうか。もちろん、JavaのコマンドラインユーティリティからHGコマンドを実行する必要がありますが、気づいているように、SSHユーザーのパスワードを要求します。リポジトリのURLとともにパスワードを提供する方法がないので、これをどう扱うのですか? – sra

+0

@sra:わからない。おそらく、あなたは自分のプログラムにMercurialの 'ui.ssh'設定をセットすることができます。そのプログラムは、リモートホストへのSSH接続を確立する必要があります。私はMercurialEclipseがどのようにこれを行うのかを見ることを提案する。最終的にはJavaHgでも同じことをする必要がありますが、これまでのところまだ得られていません。 –

+0

マーティン返信ありがとうございます。実際に私は、正確になるためにすべてのMercurialコミットまたは履歴を読むJavaでアプリケーションを開発しています。今のところ、使用する選択肢が1つだけ残っており、これはコマンドラインAPI HGです。いくつかの合法性の問題のためにJavaHgを使用することはできません。だから、コマンドラインオプションから、私はこの時点で立ち往生しています。 HTTPでは、ユーザー名とパスワードの両方に対応するためにリポジトリURLを作成するオプションがあり、完璧に機能しています。 – sra

関連する問題