Saya sudah lama memikirkan sistem file versi. Ini adalah fitur pembunuh dan saya telah melihat Wayback, ext3cow, zfs, solusi sekering, atau hanya overlay cvs / svn / git.
Saya mempertimbangkan ext3cow model untuk kebutuhan saya. Transparan, efisien, tetapi saya dapat melakukannya tanpa ls abc@timestamp
fitur tambahan . Selama saya entah bagaimana mendapatkan versi file saya yang otomatis dan transparan.
Itu bisa instan atau bisa didasarkan pada snapshot pada interval 10-an, 30-an, 1m, 5m, 15m, dll. Hanya sesuatu yang secara efisien akan menangani ribuan file dalam direktori tertentu dengan berbagai ukuran, paling kecil, tetapi beberapa ke atas 100m ke 1gb.
ZFS sebenarnya bukan pilihan karena saya di linux (dan lebih suka tidak menggunakannya melalui sekering karena saya sudah memiliki pengaturan ext3 yang saya ingin versi, bukan sesuatu yang baru).
Solusi apa yang ada di luar sana?
sumber
Setelah 8 tahun mencari saya menemukan SVNFS oleh Marco R. Gazzetta (yang berbeda dari proyek yang lebih tua dengan nama yang sama oleh John Madden [yang mana orang melakukan hal yang berbeda]). SVNFS ini menggunakan svn secara transparan dalam operasi r / w:
Ini ditulis dalam Python dan menggunakan FUSE:
Dalam contoh ini SVNFS menggunakan direktori terpisah untuk repo. Meskipun saya belum mengujinya. Untuk kebutuhan saya, saya ingin memiliki repositori tepat di direktori kerja saya.
Saya juga telah menemukan referensi untuk kemampuan versi Reiser4 4 tahun yang lalu:
Tapi saya belum memeriksanya juga.
Dua tahun lalu saya pergi untuk mencari lebih jauh, menemukan proyek FiST untuk menghasilkan sistem file stackable dan menghubungi prof. Erez Zadok dari Stony Brook University yang merupakan penasihat / mentor untuk proyek yang disebut versi sebelumnya . Mengutip:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
Tampaknya sangat menarik bagi saya tetapi menghubungi orang-orang yang bekerja pada proyek tersebut mengungkapkan bahwa threre tidak dikenal sebagai tempat dari kode sumbernya. Profesor sendiri menyatakan melalui pos:
Jadi tidak ada proyek yang berjalan di sini meskipun konsep sistem file stackable tampaknya sangat bagus untuk saya. Adakah yang mau memulai proyek berdasarkan bungkus , beri tahu saya :)
sumber
Anda dapat memeriksa gitfs . Ini adalah filesystem FUSE berdasarkan git, cukup stabil dan sangat mudah digunakan.
Pada dasarnya, ini overlay pada git. Setiap kali Anda memperbarui file atau direktori itu membuat komit dengan perubahan itu (tahu untuk batch komit sehingga Anda tidak berakhir dengan 100 komit ketika Anda unzip arsip). Juga tahu untuk menyinkronkan remote Anda dan menggabungkan konflik menggunakan strategi 'selalu terima milikku'.
Ketika Anda memasangnya, itu akan membawa Anda dua direktori: saat ini dan sejarah .
├── current │ ├── test1.md │ ├── test2.md │ ├── test3.md -> current/test2.md │ ├── test4.md │ └── test_directory └── history ├── 2014-11-23 │ ├── 20-00-21-d71d1579a7 │ │ └── testing.md │ └── 20-42-32-7d09611d83 │ ├── test2.md │ └── testing.md ├── 2014-12-08 │ ├── 16-38-30-6d6e71fe47 │ │ ├── test2.md │ │ └── test1.md
Informasi lebih lanjut dapat ditemukan di halaman ini .
sumber
bup terlihat menjanjikan.
Diskusi lebih lama di sini: http://lwn.net/Articles/380983/
sumber
Coba rsnapshot - Saya belum menggunakannya sendiri, tapi saya menemukan itu sambil mencari sistem deduplikasi @ level file.
sumber
Lihatlah Hot Copy dari R1Soft.
http://www.r1soft.com/tools/linux-hot-copy/
Ini adalah modul kernel yang menyediakan snapshot copy-on-write untuk sistem standar tanpa menggunakan LVM. Ini bekerja cukup baik untuk saya dan saya dapat menginstalnya tanpa reboot.
Lihat juga: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/
sumber