5

http 経由でリポジトリのクローンを作成できません:

中止: ' http://MYREPO ' は hg リポジトリではないようです!

まず、 hg init MYREPOで新しいレポを作成し、続いてファイルを追加してコミットしました。

私のレポのあるディレクトリはパスワードで保護されていますが、それが原因で問題の兆候はありません。両方のクローン作成方法を試しました:(ローカルマシンで)

hg clone http://MYREPO my_repo

hg clone http://user:password@MYREPO my_repo

レポディレクトリのパーミッションは: drwxrwxr-x

このレポジトリをリモート マシン (同じレポがオンになっている) に問題なく複製できます。

何が間違っている可能性がありますか?

4

4 に答える 4

10

アップデート:

リポジトリとホスト名の間で混乱しているようです

「hgserve」、「hg clone http:// USER @ HOST:8000」を実行している場合、ホストはマシンのIPまたはホスト名になります(Linuxでは「hostname」と入力するか、「pinglocalhost」を試してください)。--port####をhgserveに渡すことにより、デフォルトのポートを8000から変更できます。

sshで実行する場合は、「hg clone ssh:// USER @ HOST // PATH / TO / YOUR/REPOSITORY」。ホームディレクトリにMYREPOという名前のリポジトリを作成したとすると、次のようになります。 "hg clone ssh:// USER @ HOST /〜/ MYREPO"

httpを介してのみリポジトリのクローンを作成できます。これは、httpを介してそのリポジトリを提供しているものです。Mercurialは、組み込みのhttpサーバーを提供します。リポジトリ内で「hgserve」を実行してから、別の場所(または別のコマンドシェル)からクローンを作成してみてください。ローカルクローンが必要な場合は、http( "hg clone")を使用する必要はありません。

また、詳細については、「hghelpclone」および「hghelpserve」を試してください。

于 2009-05-02T15:03:55.220 に答える
3

奇妙なことに、ssh でクローンを作成するには、直感的でない追加のスラッシュが必要です。

これは、ポート43211で実行されているsshを備えたホストで機能します

hg clone ssh://example.com:43211//repos/myRepo ./myRepo

ポート番号の後の二重スラッシュは機能しますが、単一のスラッシュがあると「.hg not found」エラーが発生します

于 2011-08-22T02:47:21.870 に答える
2

besszero の言うとおりですが、とにかくユーザー名とパスワードを使用するのであれば、SSH を使用してクローンを作成してみませんか?

hg clone ssh://machine_ip//your/repo/location your_repo

また、mercurial の http サーバー用に別のポートを開きたくない場合や、hgweb 機能が不要な場合にも安全です。トラフィックも暗号化されます。唯一の欠点は、チェックアウトするためにログインする必要があることですが、少なくとも私の経験では、変更をプッシュバックするために HTTP は機能しません。

于 2009-05-02T15:26:38.940 に答える