Ikhtisar + pertanyaan
Saya ingin kontrol metadata filesystem etckeeper seperti untuk non- / etc, direktori yang dikontrol git. Direktori rumah dan aplikasi web, antara lain, peka terhadap metadata (kepemilikan file, ACL, izin). Ini bisa sangat berguna / penting untuk menggunakan git untuk penyebaran server otomatis (bersama dengan alat-alat seperti Fabric ), antara lain. Saya ingin menggunakan kembali kemampuan etckeeper seperti pada dirs, baik dengan etckeeper itu sendiri atau sesuatu yang lain.
Adakah yang bisa menyarankan tips / trik / solusi kerja untuk memberikan salah satu atau kedua hal berikut ini:
- menerapkan mesin etckeeper (hanya peduli tentang kemampuan spesifik git dari etckeeper) ke direktori non-/ etc, git-controlled. (Dapat mengasumsikan setidaknya Debian / Ubuntu Linux; ingin MacOSX / dukungan homebrew jika mungkin.)
- memperluas git dengan dukungan metadata (di luar hal-hal yang terlalu disederhanakan seperti git-cache-meta ) untuk mendukung kemampuan seperti penjaga etc atau lebih baik?
Lebih detail, latar belakang
Ada minat yang tumbuh dalam memperluas git dengan kemampuan filesystem-metadata-control . etckeeper ini metadata "mesin" tampaknya cukup kuat dan dapat diandalkan dalam pengalaman saya, dan etckeeper tampaknya populer dengan orang lain juga. metastore setidaknya sebagian karena tantangan metastore yang tidak berbasis teks / penggabungan-tidak ramah . Lebih lanjut, penjaga etc tampaknya telah mulai dengan inti berbasis metastore, tetapi kemudian beralih ke inti sendiri (spekulatif?).
Jelas, ini memiliki dependensi khusus OS / sistem file. (mis., tidak mencoba menggunakan-otomatis pada Windows.) Sarankan opsionalekstensi (jika itu adalah "ekstensi asli") dari git, diaktifkan sesuai permintaan oleh pengguna dengan konsekuensi yang dipahami dari kerusakan lintas-platform, sehingga perilaku asli tidak merusak git "secara default" keramahan lintas-platform. Lebih jauh, tidak perlu menyimpan metadata unix / darwin / etc yang boros (seperti ACL); pengguna dasar / grup / perm lainnya dan kepemilikan pengguna / grup akan baik-baik saja. (Ini adalah satu-satunya hal yang saat ini melanggar hal-hal dalam "kontrol / kebijakan keamanan / kerentanan.") OS spesifik yang saya targetkan di muka: Debian, Ubuntu, MacOS 10.6+. Kemudian: Redhat (CentOS, Fedora, RHEL), SUSE, mungkin Linux lain, dan * BSD (FreeBSD, NetBSD, OpenBSD). Jangan melihat kebutuhan / aplikasi untuk Windows / VMS (walaupun VMS bisa ramah-posix) atau OS lain yang tidak seperti unix pada titik yang dapat diperkirakan.
Lihat juga: latar belakang kemampuan git, file-metadata / tipe-pelacakan file yang sudah ada sebelumnya pada pertanyaan stackoverflow ini yang saya posting .
Mengembangkan persyaratan untuk proyek baru?
Selain itu: jika ada yang peduli untuk mengembangkan persyaratan untuk kemampuan seperti itu, saya yakin itu bisa terbukti bermanfaat, terutama untuk proyek baru / belum selesai untuk mengatasi di atas.
sumber
Jawaban:
Menurut jawaban serverfault ini , Anda cukup melakukan ini:
sumber
Saya menggali masalah ini dan saya memutuskan untuk membuat proyek git-store-meta untuk itu.
git-store-meta adalah skrip perl yang mengintegrasikan fitur-fitur bagus dari git-cache-meta, metastore, setgitperms, dan mtimestore. Itu harus melayani kompromi yang baik dari fleksibilitas, fungsionalitas, kinerja, dan portabilitas dan konsistensi lintas-platform.
sumber