Mercurialリポジトリのファイルパーミッション/モード(chmod)の変更を無視する方法はありますか?
Gitに似た設定を探しています:
core.filemode -> false
- ここで説明されているように:
更新:正解はRy4anと彼の答えに対する私の2番目のコメントです。
Mercurialリポジトリのファイルパーミッション/モード(chmod)の変更を無視する方法はありますか?
Gitに似た設定を探しています:
core.filemode -> false
更新:正解はRy4anと彼の答えに対する私の2番目のコメントです。
Mercurialは、ファイルの実行権限のみを追跡し、ユーザー/グループ/その他の方法では追跡しません。したがって、スケルチしようとしているものによっては、実行中のユーザーのを調整する必要がある可能性がありますumask
。hg update
それがあなたを取得している実行ビットである場合、私は唯一のオプションは次のような事前コミットフックを使用することだと思います:
[hooks]
pre-commit = find $(hg root) -type f -print0 | xargs -0 chmod a-x
つまり、コミットする前にすべてのファイルから実行を削除します。
バージョン管理されたファイルでのみ同じことを行うには、 Ishのコメントhg locate
で指摘されているように使用します。
[hooks]
pre-commit = hg locate --print0 | xargs -0 chmod a-x
ただし、これは特定の状況では失敗する可能性があることに注意してください。たとえば、名前変更(hg rename
)中は、名前変更前と名前変更後の両方のファイルが、を使用してバージョン管理されたものとして記録されhg locate
ます。したがって、フックはchmod
ファイルの古い名前に失敗し、コミットは全体として失敗します。/bin/true
これは、フックを一時的に無効にするか、フックの最後で呼び出すことによって「修正」できます。