私は、自動オフサイトレプリケーションを実行するWindowsサーバーでアーカイブファイルシステムを実行しています。これにより、Mercurialリポジトリをホストし、それらの安全性を確保するのに理想的な場所になります。このファイルシステムはWindows専用なので、ホストOSとしてWindowsを使用するしかありません。
設定:
サーバー(「ウンゴリアント」、ネットワーク内部):
- Windows7マスターリポジトリホストマシン。
- Cygwinsshデーモン。
- hg 1.9.3
- 「hginit」を使用して、Windows上に新しいリポジトリ「/ cygdrive / j / mercurial/rcstudio」を作成しました。
クライアント:
- hg2.1.2を実行しているMacOSX10.7.4
- hg2.1.2を実行しているFreeBSD8.3
クライアントでの問題(MacとFreeBSDで同じ):
$ hg clone ssh://cjp@ungoliant//cygdrive/j/mercurial/rcstudio
running ssh cjp@ungoliant 'hg -R /cygdrive/j/mercurial/rcstudio serve --stdio'
remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
パスとURIが正しいことを確認しました。そこには絶対に「.hg」ディレクトリがあります。
$ ls -la
total 0
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 .
drwxr-xr-x 41 cjp staff 1394 Jun 5 16:30 ..
$ scp -r cjp@ungoliant:/cygdrive/j/mercurial/rcstudio/.hg .
$ ls -la
total 0
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 .
drwxr-xr-x 41 cjp staff 1394 Jun 5 16:30 ..
drwxr-xr-x 5 cjp staff 170 Jun 5 17:41 .hg
$ ls -la .hg
total 16
drwxr-xr-x 5 cjp staff 170 Jun 5 17:41 .
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 ..
-rw-r--r-- 1 cjp staff 57 Jun 5 17:41 00changelog.i
-rw-r--r-- 1 cjp staff 33 Jun 5 17:41 requires
drwxr-xr-x 2 cjp staff 68 Jun 5 17:41 store
問題が不適切にフォーマットされたsshURIであるスタックオーバーフローの質問をたくさん見つけました...私のものは正しくフォーマットされており、絶対パスを記述しています。
私は次のすべてを確認しました:
- hgコマンドは、サーバーとsshの両方で正常に実行されます。
- 絶対パスを貼り付けると、sshを介して.hgディレクトリの存在を確認できます。
- sshを介して手動で発行された他のhgコマンドは成功します(例:ssh cjp @ ungoliant'cd / cygdrive / j / mercurial / rcstudio; hg diff;')。
- ホストマシンでは、同じ絶対パスからローカルにクローンを作成できます。
私はここで困惑しています。Mercurialのドキュメントでは、2.1.2は1.9.3の親からクローンを作成できるはずなので、バージョンの競合ではないようです。
よろしくお願いします!ありがとう!