Saya merasa jawaban untuk pertanyaan Anda adalah ya - manfaat mengelola file Anda dengan sistem kontrol versi jauh lebih besar daripada biaya penerapan sistem seperti itu.
Saya akan mencoba merespons secara rinci beberapa poin yang Anda ajukan:
- Cadangan: Saya sudah memiliki sistem cadangan.
Ya, dan saya juga. Namun, ada beberapa pertanyaan yang perlu dipertimbangkan sehubungan dengan kesesuaian mengandalkan sistem cadangan tujuan umum untuk secara memadai melacak file penting dan aktif yang berkaitan dengan pekerjaan Anda. Di sisi kinerja:
- Pada interval berapa sistem cadangan Anda mengambil foto?
- Berapa lama untuk membuat snapshot?
- Apakah harus memotret seluruh hard drive Anda saat mengambil snapshot, atau dapatkah dengan mudah disuruh mencadangkan dua file yang baru saja menerima pembaruan penting?
- Dapatkah sistem cadangan Anda menunjukkan kepada Anda, dengan akurasi, apa yang berubah dalam file teks Anda dari satu cadangan ke yang berikutnya?
Dan yang paling penting:
- Berapa banyak lokasi cadangan disimpan? Apakah mereka berada di lokasi fisik yang sama dengan komputer Anda?
- Seberapa mudah untuk mengembalikan versi file tunggal dari sistem cadangan Anda?
Misalnya, miliki Mac dan gunakan Time Machine untuk mencadangkan ke hard drive lain di komputer saya. Time Machine sangat bagus untuk memulihkan file aneh atau memulihkan sistem saya jika ada masalah. Namun itu tidak memiliki apa yang diperlukan untuk dipercaya dengan pekerjaan penting saya:
Saat mencadangkan, Time Machine harus mem-image keseluruhan hard drive yang membutuhkan banyak waktu. Jika saya terus bekerja, tidak ada jaminan bahwa file saya akan ditangkap dalam keadaan seperti itu ketika saya memulai cadangan. Saya juga dapat mencapai titik lain yang ingin saya simpan sebelum cadangan pertama selesai.
Hard drive tempat cadangan Time Machine saya disimpan berada di mesin saya - ini membuat data saya rentan terhadap pencurian, kebakaran, dan bencana lainnya.
Dengan sistem kontrol versi seperti Git, saya dapat memulai cadangan file tertentu tanpa upaya lebih lanjut yang meminta penyimpanan dalam editor teks - dan file tersebut dicitrakan dan disimpan secara instan. Selanjutnya, Git didistribusikan sehingga setiap komputer tempat saya bekerja memiliki salinan lengkap dari repositori.
Ini setara dengan pekerjaan saya yang dicerminkan di empat komputer yang berbeda - tidak ada tindakan dewa yang dapat menghancurkan file dan data saya, pada titik mana saya mungkin tidak akan terlalu peduli.
- Forking dan rewinding: Saya tidak pernah merasa perlu untuk melakukan ini, tapi saya bisa melihat bagaimana itu bisa berguna (misalnya, Anda sedang menyiapkan beberapa artikel jurnal berdasarkan dataset yang sama; Anda sedang menyiapkan laporan yang diperbarui setiap bulan, dll. )
Sebagai solois, saya juga tidak banyak bercabang. Namun, waktu yang saya hemat dengan memiliki opsi untuk mundur telah membayar sendiri investasi saya dalam mempelajari sistem kontrol versi berkali-kali. Anda mengatakan Anda tidak pernah merasa perlu melakukan ini - tetapi apakah memundurkan file apa pun di bawah sistem cadangan Anda saat ini benar-benar merupakan pilihan yang tidak menyakitkan dan layak?
Terkadang laporannya terlihat lebih baik 45 menit, satu jam atau dua hari yang lalu.
- Kolaborasi: Sebagian besar waktu saya menganalisis data sendiri, dengan demikian, saya tidak akan mendapatkan manfaat kolaborasi dari kontrol versi.
Ya, tetapi Anda akan mempelajari alat yang mungkin terbukti sangat diperlukan jika Anda akhirnya berkolaborasi dengan orang lain dalam suatu proyek.
- Saatnya mengevaluasi dan mempelajari sistem kontrol versi
Jangan terlalu khawatir tentang ini. Sistem kontrol versi seperti bahasa pemrograman - mereka memiliki beberapa konsep kunci yang perlu dipelajari dan sisanya hanya gula sintaksis. Pada dasarnya, sistem kontrol versi pertama yang Anda pelajari akan membutuhkan investasi paling banyak waktu-beralih ke yang lain hanya membutuhkan belajar bagaimana sistem baru mengekspresikan konsep-konsep kunci.
Pilih sistem yang populer dan lakukan!
- Kemungkinan peningkatan kompleksitas pada sistem manajemen file saya saat ini
Apakah Anda memiliki satu folder, misalnya Projectsyang berisi semua folder dan file yang terkait dengan aktivitas analisis data Anda? Jika demikian maka menampar kontrol versi akan meningkatkan kompleksitas sistem file Anda dengan tepat 0. Jika proyek Anda bertebaran tentang komputer Anda - maka Anda harus memusatkan mereka sebelum menerapkan kontrol versi dan ini pada akhirnya akan mengurangi kompleksitas mengelola file Anda - itu sebabnya kami memiliki Documentsfolder.
- Apakah kontrol versi sepadan dengan usaha?
Iya! Ini memberi Anda tombol membatalkan besar dan memungkinkan Anda untuk dengan mudah mentransfer pekerjaan dari mesin ke mesin tanpa khawatir tentang hal-hal seperti kehilangan drive USB Anda.
2 Apa pro dan kontra utama dari mengadopsi kontrol versi?
Satu-satunya hal yang dapat saya pikirkan adalah sedikit peningkatan ukuran file- tetapi sistem kontrol versi modern dapat melakukan hal-hal yang luar biasa dengan kompresi dan penghematan selektif sehingga ini adalah poin yang bisa diperdebatkan.
3 Apa strategi yang baik untuk memulai dengan kontrol versi untuk analisis data dengan R (misalnya, contoh, gagasan alur kerja, perangkat lunak, tautan ke panduan)?
Simpan file yang menghasilkan data atau laporan di bawah kontrol versi, selektif. Jika Anda menggunakan sesuatu seperti Sweave, simpan .Rnwfile Anda dan bukan .texfile yang dihasilkan darinya. Simpan data mentah jika akan sulit diperoleh kembali. Jika memungkinkan, tulis dan simpan skrip yang memperoleh data Anda dan skrip lain yang membersihkan atau memodifikasinya daripada menyimpan perubahan pada data mentah.
Sedangkan untuk mempelajari sistem kontrol versi, saya sangat merekomendasikan Git dan panduan ini.
Situs web ini juga memiliki beberapa kiat dan trik bagus terkait dengan melakukan tindakan spesifik dengan Git: