Lihat /software/109817/superior-refusing-to-use-subversion
Pertanyaan saya serupa, tetapi inilah perbedaan utama dalam skenario saya:
Kami memulai proyek baru dari awal, menggunakan PHP dan teknologi web. Tidak akan ada down time dalam pengembangan karena kami akan mengadopsinya dari awal, jika saya memiliki cara saya.
Tim dev saya terdiri dari saya, dan bos saya. Kami adalah Departemen "TI" perusahaan yang relatif kecil.
Aplikasi web akan menggantikan aplikasi lawas tanpa kontrol sumber sama sekali. Karena variasi dalam persyaratan hukum geografis, keputusan dibuat (sebelum saya dipekerjakan) untuk memotong aplikasi menjadi 7 direktori yang benar-benar terpisah untuk setiap versi. Pengembang yang berbeda melakukan hal yang berbeda di tempat yang berbeda pada waktu yang berbeda setelah itu. Menambal perubahan di mereka, well, saya pikir itu bisa dilakukan lebih baik, saya kira itu sebabnya saya memposting.
Proposal bos saya, langsung disisipkan dari email:
Pembaruan harus diserahkan sebagai paket dalam folder PENGAJUAN. Paket harus berisi semua file yang relevan serta file 'UPDATE.NFO' yang berisi deskripsi pembaruan, daftar semua file baru yang disertakan (dengan deskripsi), dan daftar semua file yang dimodifikasi dengan detail modifikasi.
Paket pembaruan harus fokus pada elemen individual dan tidak menyimpang dari tujuan yang dimaksudkan. Kode harus dirancang agar modular dan dapat digunakan kembali kapan pun memungkinkan.
Semua paket yang dikirimkan harus diinstal di lingkungan pengujian setiap pengembang segera setelah pengiriman. Setiap pengembang akan meninjau tambahan baru dan menyuarakan keprihatinan apa pun atas pemasangannya ke lingkungan produksi. Pembaruan paket standar harus diadakan selama minimal 3 hari kerja untuk proses peninjauan ini sebelum dimasukkan ke lingkungan produksi. Pembaruan / perbaikan prioritas tinggi dapat melewati persyaratan ini.
Alasan kontrol sumber ditemukan adalah untuk membuat semua itu otomatis, bukan? Saya menyarankan subversi, karena itulah yang saya gunakan di perguruan tinggi. Boss tidak suka subversi karena "Itu membuat kekacauan kode" (yaitu menggunakan sihir biner dan tidak mudah dibaca). Kami pernah mencobanya satu kali, tetapi saya pikir mencoba menggunakannya di windows membuat kesalahan huruf kecil / huruf besar yang aneh dan kami tidak dapat memeriksa file kami. Saya tidak tahu apakah itu hanya subversi, atau semua produk kontrol sumber yang dapat diterima.
Jadi, argumen apa yang harus saya buat untuk bos saya? Atau apakah dia benar, dan mungkin ada bahaya kehilangan semua pekerjaan kita dari bug aneh?
Atau apakah saya salah sama sekali? Apakah kontrol sumber benar-benar diperlukan dalam situasi saya? Ini adalah perangkat lunak penting bisnis utama yang sedang kita bicarakan, sehingga tidak akan diragukan lagi. Tapi hanya ada 2 pengembang (sekarang).
Selain itu, Jika saya tidak dapat meyakinkannya, apakah ada gunanya saya menggunakannya hanya untuk diri saya sendiri? Saya berbicara sebagai seseorang dengan pengalaman sangat terbatas yang benar-benar menggunakan svn; yang saya tahu hanyalah checkout dan komit. Apa sajakah fitur kontrol sumber (mungkin termasuk produk lain selain svn) yang akan membantu dalam upaya pengembangan pribadi saya?
Harap tidak ada komentar "dapatkan pekerjaan lain". Itu tidak membantu perdebatan.
sumber
I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....
Yah, batasan spesifiknya tidak konyol sama sekali. Nasihat karier adalah di luar topik, dan meskipun jawaban yang akan menjawab pertanyaan dan menawarkan saran karier baik-baik saja bagi saya, saya tidak berpikir itu konyol bagi OP untuk menentukan bahwa dia tidak peduli dengan saran karier.Jawaban:
Jangan tanya dia. Jangan katakan padanya. Tunjukkan padanya.
Instal svn, atau git, atau apa pun yang Anda suka di beberapa mesin tambahan. Berlatihlah menggunakannya sendiri sampai Anda merasa nyaman tidak hanya menggunakannya, tetapi juga menjelaskannya. Jika Anda akan membuatnya nyaman dengan sistem baru Anda, Anda harus lebih dari nyaman dengan itu sendiri. Anda harus dapat membantunya pulih dengan mudah ketika dia mengacaukan gabungan atau memeriksa sesuatu di tempat yang salah.
Saat Anda siap, tunjukkan kepadanya apa yang Anda bicarakan. Tunjukkan padanya bahwa itu tidak "mengacaukan" apa pun. Tunjukkan bahwa itu tidak hanya memungkinkan Anda mengambil versi kode Anda sebelumnya dengan mudah, tetapi juga memungkinkan untuk mengetahui dengan tepat apa yang berubah antara dua versi.
Tunjukkan bahwa jika sesuatu terjadi pada server (bug serius, virus, hacker, kerusakan disk ...) Anda berdua akan terlihat seperti pahlawan jika Anda dapat langsung merekonstruksi versi yang diperlukan. Tunjukkan juga, bahwa Anda akan terlihat dua kali lebih baik jika Anda dapat menghasilkan versi apa pun berdasarkan permintaan. Cari email lama Anda dan kompilasi daftar masalah yang Anda miliki selama setahun terakhir yang bisa Anda hindari dengan kontrol versi.
Beri dia lembar contekan yang akan membuatnya mudah baginya untuk menggunakan sistem kontrol versi Anda.
Akhirnya, sarankan beberapa opsi tetapi serahkan keputusan kepadanya . Haruskah Anda mengatur server Anda sendiri, atau menggunakan salah satu dari banyak layanan yang di-host ? Haruskah Anda menggunakan svn, git, atau yang lainnya? Haruskah Anda memigrasi ketujuh proyek ke sistem, atau mencobanya dengan satu atau dua proyek pada awalnya?
sumber
search your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Manfaat kontrol sumber jauh melampaui memungkinkan banyak pengembang untuk bekerja pada satu kode. Eric Sink, pendiri SourceGear , mencantumkan beberapa alasan kuat untuk menggunakan kontrol sumber sebagai pengembang tunggal :
Eric juga kebetulan memiliki Source Control How-to pemula yang sangat bagus . Ada tutorial Mercurial online gratis yang disediakan oleh Joel Spolsky, Mercurial adalah sistem kontrol versi terdistribusi yang populer.
Sebagai langkah selanjutnya saya sarankan Anda untuk mulai menggunakan kontrol sumber secara lokal pada mesin Anda, sebagai pengembang tunggal. Dengan segera atasan Anda akan menyadari bahwa Anda mampu melakukan sihir belaka, seperti mengatakan dalam hitungan menit, jika tidak dalam hitungan detik, seberapa jauh bug super-kritis terjadi dan kemudian Anda akan memberi tahu dia secara tepat akun pelanggan mana yang terpengaruh dan perlu diperbaiki sebelum semuanya. neraka lepas. Atau bisa membatalkan perubahan yang tidak disetujui CEO dengan sangat cepat.
Dan akhirnya sebelum Anda mencoba meyakinkan atasan Anda, Anda mungkin ingin mempelajari topik penanganan keberatan . Ini 101 penjualan.
Jika tidak berhasil - lanjutkan secepat mungkin, tidak banyak gunanya membuang waktu Anda memiringkan kincir angin.
sumber
Ya, menggunakan kontrol sumber, bahkan jika hanya untuk Anda, benar-benar bermanfaat. Git, misalnya, bekerja sangat baik untuk pengembang mandiri dan memungkinkan Anda melakukan hal-hal seperti cabang dan penggabungan (dengan biaya serendah mungkin) dan versi perubahan Anda saat Anda pergi.
SVN - atau sistem kontrol versi apa pun, sungguh - memungkinkan Anda untuk melakukan ini juga, tetapi penggabungannya sedikit lebih bermasalah.
sumber
git init
begitu Anda mulai mengerjakan sesuatu..gitignore
repo git pada dasarnya tidak berguna. Itulah satu-satunya hal yang harus Anda miliki selaingit init
Iya. Ada manfaatnya menggunakannya hanya untuk diri sendiri. Anda mendapatkan riwayat perubahan sehingga Anda dapat melihat apa yang berbeda.
Tidak. Tidak ada manfaatnya karena bos Anda telah merusak proyek Anda karena banyak pengerjaan ulang yang tidak berguna karena mereka mengacaukan semuanya.
sumber
Saya sangat merekomendasikan seperti yang disebutkan sebelum penggunaan git, alasan # 1 adalah karena VCS adalah jaring pengaman jika terjadi bencana. Cari stiker “Seandainya terjadi kebakaran: git commit, git push, tinggalkan bangunan”. Kode dapat disimpan di tempat lain, tetapi tidak di laptop yang dapat rusak, dicuri atau apa pun ... bahkan server jaringan lokal bukanlah tempat teraman untuk sesuatu yang berharga seperti kode.
Nomor 2. Penelusuran perubahan, siapa yang melakukan apa, kapan, dll ... Menggabungkan, Membatalkan. Nomor 3. Diff alat ajaib untuk # 2 dan banyak lagi kasus. Nomor 4. Cabang Nomor 5. Versi penandaan, rilis, dll.
Anda dapat menemukan informasi lebih lanjut tentang salah satu alur kerja git paling umum di sini: https://nvie.com/posts/a-successful-git-branching-model/
Saya tahu bahwa menggunakan git pada awalnya mungkin menakutkan, tetapi ini merupakan investasi yang bagus untuk keterampilan, dan harus dimiliki oleh tim pengembang mana pun.
Tentang masalah Anda dengan kasus teks, hindari menggunakan Tortoise, saya tahu kebanyakan orang menggunakannya sebagai GUI untuk git, karena itu sangat umum untuk SVN, jadi itu mungkin pilihan pertama, alih-alih gunakan baris perintah, atau GUI lain seperti github desktop atau SourceTree dari Atlasian.
sumber