http経由でmercurial(hg)リポジトリを複製できません
-
03-07-2019 - |
質問
http:でリポジトリを複製できません:
abort: ' http:// MYREPO 'はhgリポジトリではないようです!
最初に、 hg init MYREPO によって新しいリポジトリを作成し、続いてファイルを追加してコミットします。
レポジトリのディレクトリはパスワードで保護されていますが、それによる問題の兆候はありません。クローンの両方の方法を試しました。 (私のローカルマシン上で)
hg clone http:// MYREPO my_repo
and
hg clone http:// user:password @ MYREPO my_repo
repo dirの権限:drwxrwxr-x
問題なく、このリポジトリをリモートマシンに複製できます(同じリポジトリがオンになっています)。
おそらく間違っている可能性があるもの
解決 4
Argh ... .htaccess設定に注意する必要があります。私の場合、クローンするパスに「hgwebdir.cgi」を追加する必要がありました...回答ありがとうございます!
SSHは論理的に見えますが、どういうわけか自分のローカル以外のユーザーには使用できませんでした:
hg clone ssh:// MY_REMOTE_USER @ MYREPO remote:abort:Mercurialリポジトリがありません(.hgが見つかりません)!
他のヒント
更新:
リポジトリとホスト名を混同しているように見えます
" hg serve"、" hg clone http:// USER @ HOST:8000 &quotを実行している場合; hostは、マシンのIPまたはホスト名(Linuxでは「ホスト名」と入力するか、「ping localhost」を試してください)になります。 --port ####をhg serveに渡すことで、デフォルトのポートを8000から変更できます。
sshで実行したい場合は、" hg clone ssh:// USER @ HOST // PATH / TO / YOUR / REPOSITORY"。 MYREPOという名前のホームディレクトリにリポジトリを作成した場合、次のようにします。" hg clone ssh:// USER @ HOST /〜/ MYREPO"
http経由でのみレポのクローンを作成できます。これは、http経由でレポを提供しているものです。 Mercurialは、組み込みのhttpサーバーを提供します。 「hg serve」を実行しますリポジトリ内で、別の場所(または別のコマンドシェル)から複製を試みます。ローカルクローンだけが必要な場合は、http(" hg clone")を使用する必要はありません。
また、「hg help clone」を試してください;および「hg help serve」」詳細については。
奇妙なことに、sshでクローンを作成するには、直感的ではない余分なスラッシュが必要です。
これは、ポート43211でsshが実行されているホストで機能します
hg clone ssh://example.com:43211//repos/myRepo ./myRepo
ポート番号の後の二重スラッシュは機能しますが、そこに単一のスラッシュがあると「.hgが見つかりません」という結果になります。エラー
besszeroは正しいのですが、ユーザー名とパスワードを使用する場合は、SSHを使用してクローンを作成してください。
hg clone ssh:// machine_ip // your / repo / location your_repo
また、mercurialのhttpサーバー用に別のポートを開きたくない場合、およびhgweb機能を必要としない場合、トラフィックも暗号化されます。唯一の欠点は、チェックアウトするためにログインする必要があることですが、少なくとも私の経験では、変更をプッシュバックするにはHTTPは機能しません。