1

WindowsとMacで共有されているプロジェクトがいくつかあります。開発マシンはParallelsを実行しているMacです。ファイルはMac側に保存され、ソースはWindows側で共有されます。これは、ファイルを同期しなくてもWindowsツールとMacツールをすばやく切り替えることができるので非常に便利です。

最近、SubversionからMercurialに切り替えましたが、Windowsツールを使用して追加/更新するなどしてMercurialリポジトリが破損するという問題が発生しています。Windows側のどの操作が安全かについては、細心の注意を払う必要があります(主に読み取り専用のもの)そしてもちろん私はかなり定期的に忘れています。

腐敗が発生する理由を誰かが知っていますか?Mercurialリポジトリはプラットフォームに依存しないと思いました。Windowsツールを完全に削除せずにそれを防ぐ方法はありますか?

4

1 に答える 1

4

Windows側とOSX側の両方が同じバージョンのmercurialを使用していますか。Mercurialは、ネットワークおよびファイルレベルで優れた下位互換性を備えており、どのバージョンでも以前のバージョンのリポジトリにプッシュ/プル/コミットできますが、上位互換性がないため、Windows側でMercurial 1.0を使用し、OSX側で1.5を使用している場合その場合、WindowsはOSX側で作成されたクローンにコミットするべきではありません。

一般に、mercurialはシステムごとのユーザーごとのクローン用に構築されており、プッシュとプルによって仲介される競合するアクションがあります。コミットなどのローカルのみのアクションのために複数のクライアントがアクセスする共有リポジトリは、推奨されるユースケースではありません。

両方のシステムでの編集は問題ありませんが、OSXからのみコミットします。Windows側では、%USER_PROFILE%\ Mercurial.iniファイルに次のようなものを配置することで、これを強制できます。

[hooks]
pre-commit = c:\doesnotexist.exe

フックが失敗するのに十分なはずです。これにより、コミットが実行されなくなります。

于 2010-05-27T14:24:37.417 に答える