0

私がubuntuVMに浸入し、bitbucketから何かをhgクローンし、それに対してcommit / export / etcを実行しようとすると、名前のプレフィックスが「hg-checklinks-」であるフォルダーが追加されます。

調べてみると、親フォルダに戻るシンボリックリンクの終わりのないチェーンが格納されているように見えます。これは私を完全に狂わせています、そしてこれまでのところ、私は水銀への信仰を失っています。

念のために言っておきますが、ローカルフォルダで使用するだけで問題なく動作するようです。誰かが私がこれを回避する方法を知っていますか..またはそれが起こっている理由についてさらに詳しい情報がありますか?

乾杯!

4

2 に答える 2

4

DVCSの分散化された部分は、ローカルで実行することです。ローカルシステム以外で実行する必要があるMercurialの操作は、、、、pushだけpullですclone。bitbucketからUbuntuVMにクローンを作成する場合は、Ubuntu VMからMacにクローンを作成し、UbuntuVMにプッシュする必要があります。

とはいえ、ネットワークFSは、指示されたときにファイルを正しく削除していないようです。関連するコードは次のとおりです(ここにあります:https ://www.mercurial-scm.org/repo/hg/file/a2dc8819bb0d/mercurial/util.py#l710 ):

name = tempfile.mktemp(dir=path, prefix='hg-checklink-')
try:
    os.symlink(".", name)
    os.unlink(name)
    return True
except (OSError, AttributeError):
    return False

したがって、ネットワークFSがシンボリックリンクを作成しているが、とにかく例外をスローするか、シンボリックリンクを削除(リンク解除)するように求められたときに例外をスローします。

于 2011-03-07T04:42:23.697 に答える
0

ここでの問題は、sshfsの非常に特殊な「-ofollow_symlinks」にあります。これは、シンボリックリンクを作成し、作成できなかったと主張して、再帰的に削除できない素晴らしいディレクトリとして表示します。この壊れたオプションは、Macfusionのバグ( https://code.google.com/p/macfusion/issues/detail?id=284 )によって自動的にオンになる場合があります。したがって、どちらかといえば、Mercurialではなく、sshfsとMacfusionへの「信頼を失う」必要があります。

これはMercurial2.7で回避されます。それまでの間、オプションなしでsshfsを手動で実行できるはずです。

(より迅速なバグ修正については、ランダムなインターネット質問フォーラムではなく、Mercurial / sshfs / macfusionプロジェクトにバグを報告してください。)

于 2013-07-29T20:14:49.520 に答える