Ruang penyimpanan murah, dan itu bukan argumen yang sangat meyakinkan mengapa Anda harus atau tidak harus memeriksa file.
Sebagai gantinya, Anda dapat naik banding ke tujuan SCM. Setiap file yang dilacak oleh SCM mewakili beberapa kebutuhan untuk mengelola paralel, perubahan terdistribusi yang dilakukan tim Anda. Tidak ada yang benar-benar jelas sampai dua anggota tim mencoba mengubah file yang sama. Menyelesaikan perubahan-perubahan itu adalah untuk apa SCM sebenarnya, mencegah penimpaan yang tidak disengaja dari pekerjaan dev lain, dan mudah-mudahan, mengotomatiskan proses menggabungkan perubahan-perubahan itu.
Menggabungkan file biner biasanya merupakan tantangan nyata, karena tidak ada cara yang waras untuk alat penggabungan generik untuk menebak bagaimana seharusnya file biner yang digabung bekerja. Itu tidak bisa cukup tahu tentang bagaimana indeks atau offset pointer dalam file bekerja kecuali dirancang khusus untuk mengenali tipe file tertentu.
Itu berarti terserah pada dev untuk menggabungkan file biner dengan tangan, dan kemudian memberi tahu SCM bahwa file tersebut telah begitu digabung. Karena ini adalah pengembang yang melakukannya, penggabungan mungkin tidak benar-benar mencakup semua perubahan dari kedua check-in sebelumnya, dan karena file tersebut biner, tidak ada cara otomatis untuk memverifikasi penggabungan.
Untuk format biner yang benar-benar mewakili sumber proyek, seperti aset seni, ini merupakan langkah yang disayangkan, tetapi perlu. Namun, output build bukan sumber. Tidak perlu untuk menggabungkan mereka, karena sumber dapat digabungkan dan output build yang dihasilkan dapat dibuat ulang. Melacak dan mengelola perubahan ini adalah pemborosan 100%. Itu memboroskan sumber daya SCM, meskipun tidak terlalu banyak, tetapi juga membuang waktu pengembang untuk melewati kegagalan penggabungan palsu. Waktu pengembang sangat mahal, dan apa pun yang sia-sia adalah kanker.
Di sisi lain, ada kasus khusus di mana output build harus diarsipkan. Setiap versi dari proyek yang pernah dikirimkan atau disebarluaskan mungkin harus dipertahankan, tanpa batas waktu. Memiliki salinan byte yang tepat untuk byte dari bangunan aktual yang bermasalah dengan pelanggan dapat membuat mendukung pelanggan itu lebih mudah, karena Anda akan memiliki versi persis yang ia miliki.
Cadangan itu mungkin tidak boleh berada dalam repositori yang sama dengan kode sumber, karena mereka umumnya akan mengikuti jadwal yang berbeda dan pada dasarnya memiliki struktur yang berbeda.
Tampaknya berlebihan untuk menyertakan file sumber dan objek (file sumber jelas diperlukan). Selain menjadi tidak perlu, file objek dapat mengambil banyak ruang. Jika perusahaan Anda menggunakan SCM terdistribusi (Git, Hg, Bzr) maka file-file biner tersebut harus disalin dan disimpan di antara semua pengembang.
sumber