Etckeeper adalah alat yang hebat untuk melacak perubahan pada file konfigurasi Anda /etc
. Beberapa hal penting tentangnya sangat menonjol. Ini dapat digunakan dengan berbagai macam VCS: git, mercurial, darcs, atau bzr. Itu juga tidak otomatis dilakukan setiap hari dan setiap kali Anda menginstal, menghapus atau meningkatkan paket. Itu juga melacak izin file dan metadata kepemilikan pengguna / grup.
Saya juga ingin menyimpan "file dot" saya di direktori home saya di bawah kontrol versi juga, lebih disukai bazaar. Apakah ada yang tahu jika ada alat seperti penjaga dll ada untuk tujuan ini?
Kasus terburuk, saya membayangkan bahwa cron pekerjaan sederhana berjalan bzr add && bzr ci
sekali atau dua kali sehari bersama dengan menambahkan ~/Documents
, ~/Music
, dll untuk .bzrignore
Siapapun sudah melakukan sesuatu yang mirip dengan script?
Meskipun saya lebih suka bazaar, opsi lain mungkin menarik.
sumber
bzr
tentu bukan cara untuk pergi pada tahun 2015.Jawaban:
Saya tidak tahu apakah ada sesuatu yang melakukan ini jadi saya membuat beberapa kode untuk mencapai apa yang Anda inginkan dengan menggunakan repositori saya di sini: http://github.com/robertmassaioli/config-files
Saya memiliki file yang mengatakan di mana semua file berada dan program generate_links menempatkan semuanya di sana. Jika Anda tahu apa yang Anda lakukan dan dapat mengkompilasi beberapa kode Haskell maka itu sangat sederhana dan mudah. Meskipun diperingatkan bahwa itu benar-benar dibuat untuk penggunaan pribadi saya.
sumber
Yah, saya pergi ke depan dan melakukan ini secara manual sampai saya menemukan solusi yang lebih baik. Jadi saya bisa menjelaskan apa yang saya lakukan.
Pertama saya melakukan
bzr init ~
, tetapi hal berikutnya yang saya lakukan adalahbzr ignore "*"
. Saya memutuskan bahwa saya tidak ingin menyimpan semuanya di bawah kendali versi. Itu tidak layak, terutama ketika Anda mempertimbangkan bahwa ada beberapa hal di sana yang Anda benar-benar tidak boleh simpan dalam vcs seperti kunci Anda. Jadi saya kemudian harus kebzr add
file spesifik yang saya inginkan. Anda juga dapat menambahkan pengecualian ke.bzrignore
. Ekspresi reguler python juga berguna di sana. Saya menjaganya agar tetap ramping untuk saat ini. Jika semuanya berjalan dengan baik, saya dapat menambahkan semua~/.config
dan~/.gconf
juga.Saya juga menulis skrip cepat yang saya jalankan sebagai cron job. Ia memeriksa apakah file telah berubah, dan jika demikian juga melakukan komit:
sumber
Saya mengubah seluruh
~
direktori saya menjadi repositori Bazaar. Menyimpan metadata bukan masalah untuk file di direktori home: semuanya dimiliki oleh akun dan grup yang sama, danbzr
sudah menyimpan bit eksekusi.Saya secara manual menambahkan "menarik" file ke dalamnya (saya tidak ingin, misalnya, koleksi musik saya atau cache firefox berada di bawah kontrol versi), tetapi jika Anda ingin mengotomatiskan ini dengan skrip, saya pikir itu solusi sederhana dari melakukan
bzr add && bzr ci
pada direktori yang dipilih atau pada output dari suatufind
perintah hanya akan melakukan pekerjaan itu.sumber
Saya menyimpan file zsh dan vim saya di git, memakai github, di repositori yang berbeda:
untuk zsh, misalnya, saya membuat ".zsh" dan memasukkan zshrc dan zshenv ke dalamnya, ditambah skrip untuk menautkan zshrc ke ~ / .zshrc dan zshenv ke ~ / .zshenv, sesuatu seperti ini.
jadi saya lakukan
untuk .vim, ini hampir sama, kecuali saya menggunakan submodules untuk plugin, dengan patogen, jadi saya menambahkannya di init.sh
dan ketika saya ingin menambahkan plugin vim, saya lakukan
sebagai contoh.
ok, itu akan membutuhkan kerja yang sedikit terlalu banyak jika Anda memiliki lebih dari beberapa titik dot yang ingin Anda kelola, tetapi tidak ada yang menghalangi Anda untuk menempatkan semuanya dalam direktori yang sama, atau dipisahkan oleh aktivitas (aktif untuk semua editor grafis, satu untuk aktivitas web ...) atau lebih. Lagi pula, itulah yang saya lakukan, jadi hanya dua sen saya :).
sumber
Saya menggunakan solusi yang tidak otomatis seperti dllkeeper (saya harus komit secara manual), tetapi telah bekerja dengan baik untuk saya. Ini tidak cukup dikembangkan seperti yang saya suka, tetapi berhasil.
Saya telah menulis utilitas saya sendiri yang mirip dengan GNU Stow , karena stow tidak melakukan semua yang saya inginkan. Saya menyebutnya Stow in Home . Saat dijalankan, ia mencari direktori bernama "HOME". Kemudian mengambil semua yang ada di bawah direktori itu dan menghubungkannya ke lokasi yang sesuai di $ HOME, membuat direktori yang diperlukan. Ini juga akan menerjemahkan nama file - jika file dimulai dengan '_', itu akan diganti dengan '.'. Saya melakukan ini karena lebih baik untuk mengedit file dot saya ketika mereka tidak disembunyikan (lihat di daftar direktori secara default). Kemudian, itu akan menempatkan mereka dalam nama aplikasi mereka harapkan.
Jadi, saya punya beberapa repositori git untuk konfigurasi saya. Saya hanya meletakkan file dot yang saya edit secara pribadi di dalamnya. Keuntungan dari ini adalah saya dapat memiliki repositori untuk file dot yang dapat saya bagikan dengan orang lain (seperti konfigurasi Emacs saya) dan satu untuk orang lain yang bersifat pribadi (katakanlah, konfigurasi ssh saya, dengan nama host dan semacamnya untuk pekerjaan). Symlinking menempatkan dengan stow-in-home menempatkan semuanya di tempat yang tepat, tetapi kontrol sumber untuk masing-masing dapat terpisah.
Ini bekerja dengan baik untuk saya. Sebenarnya tidak ada alasan saya tidak dapat mengatur sesuatu untuk secara otomatis melakukan komitmen. Atau pindahkan semua file dot ke repositori yang sesuai dan masih menggunakan stow di rumah. Tapi beginilah cara saya melakukan sesuatu.
sumber
Tidak bisakah Anda menambahkan
dot files
ke repositori yang digunakan di Etckeeper?sumber
/etc
?Saya sudah melakukannya dengan menyalin semua dotfile saya, saya ingin tetap di bawah kontrol sumber ke folder yang disebut "dotfiles" di direktori / home / saya. Tentu saja ini berarti menyimpan duplikat dan menyalin bolak-balik bila perlu tetapi saya menemukan ini sebagai solusi termudah untuk diri saya sendiri.
sumber
Saya menyimpan file saya di subdirektori dan membuat tautan simbolik. Saya punya skrip yang mengotomatiskan ini. Anda dapat memeriksa semuanya di http://code.google.com/p/samking-config-files/source/browse/
sumber