Bagaimana cara kerja kontrol versi pada komputer mikro saat itu di tahun 80-an dan 90-an?

31

Saya ingin tahu bagaimana tim programmer biasanya mengelola pengembangan perangkat lunak mereka di tahun 80-an dan awal 90-an. Apakah semua kode sumber hanya disimpan pada satu mesin yang digunakan semua orang, atau apakah sumbernya diedarkan dan disalin secara manual melalui floppy dan digabung secara manual, atau apakah mereka benar-benar menggunakan sistem kontrol revisi melalui jaringan (misalnya CVS) seperti cara kami melakukannya sekarang? Atau mungkin sesuatu seperti CVS offline sedang digunakan?

Saat ini semua orang bergantung pada kontrol sumber .. ini adalah no-brainer. Tetapi di tahun 80-an, jaringan komputer tidak mudah untuk diatur, dan hal-hal seperti praktik terbaik masih dipecahkan ...

Saya tahu bahwa pada pemrograman tahun 70-an dan 60-an sangat berbeda sehingga kontrol revisi tidak diperlukan. Tetapi pada tahun 80-an dan 90-an orang mulai menggunakan komputer untuk menulis kode, dan aplikasi mulai bertambah dalam ukuran dan cakupan, jadi saya bertanya-tanya bagaimana orang mengelola semua itu saat itu.

Juga, bagaimana perbedaan antara platform? Katakanlah Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari

Catatan: Saya kebanyakan berbicara tentang pemrograman pada mikrokomputer saat ini, bukan mesin UNIX besar.

9a3eedi
sumber
3
RCS awalnya dirilis pada tahun 1982.
5gon12eder
1
Tetapi berapa banyak orang yang menggunakannya? RCS adalah AFAIK yang dibuat untuk Unix dan mesin mirip unix yang tidak berjalan pada mikrokomputer.
9a3eedi
2
Kami memiliki sistem jaringan. Hanya saja tidak diselesaikan pada tcp / ip, ada yang lain, juga seperti decnet. Berbagi file tersedia dalam beberapa protokol. Dan tim melakukan pengembangan pada mini bahkan untuk micros, meskipun beberapa pengembang independen kecil (bukan pada tim), hanya melakukan backup bukannya versi menggunakan kontrol formal. Beberapa mungkin meniru kontrol versi dengan cadangan manual yang ketat.
Erik Eidt
2
Kami melakukannya dengan sangat hati-hati, sebagian besar di perangkat basah, karena apa yang Anda anggap sebagai kontrol versi tidak ada pada platform yang Anda sebutkan.
Blrfl
2
Dalam kasus saya, kami menggunakan setumpuk kartu punch untuk komputer mini di awal 1980-an. Terkadang, kita akan menyimpan deck kode sumber di lemari file punch.
Gilbert Le Blanc

Jawaban:

22

Pertama ketika mikrokomputer pertama kali keluar, perangkat lunak sebagian besar ditulis pada sistem Unix atau VMS dan "cross compiler / assembled" ke sistem target. Sistem komputer ini adalah multi-pengguna sering dengan banyak terminal dan memiliki sistem kontrol kode sumber seperti SCCS .

Jaringan adalah pilihan pada mikrokomputer dari pertengahan 1980-an, sering terhubung ke sistem Unix sebagai "server file" (mungkin hanya menggunakan RS232 dan Kermit untuk mentransfer file, dengan SCCS pada sistem Unix)

Lihat Sejarah Kontrol Versi oleh Eric Sink untuk mendapatkan gambaran umum tentang bagaimana sistem kontrol versi telah berubah selama bertahun-tahun.

Saya ingat pernah membaca tentang kontrol kode sumber di "BYTE" pada akhir 1980-an, jadi pasti sudah digunakan pada "sistem kecil" saat itu.

SourceSafe didirikan dengan baik pada pertengahan 90-an yang berjalan pada Dos, Windows, dll.

Tautan ini menunjukkan sebuah artikel tentang PVC yang berjalan pada PC dari tahun 1994 , itu pada versi 6.2, jadi sudah jelas untuk beberapa waktu, Wikipedia mengatakan ini berasal dari tahun 1985 .


Namun floppy disk bernomor digunakan oleh sebagian besar programmer yang bekerja pada perangkat lunak skala kecil hingga akhir 1990-an, untuk diganti dengan folder pada hard disk mereka, membuat salinan kode sumber setiap hari.

Saya ingat bekerja pada proyek perangkat lunak porting dari Unit ke Windows NT 3.5. Programmer yang tahu bagaimana memprogram untuk Windows sering bahkan belum pernah mendengar tentang kontrol kode sumber pada waktu itu.


Timeline ini diambil dari posting blog oleh codicesoftware , mereka menjual Plastic SCM, namun tinjauan sejarah sistem lain tampaknya masuk akal, beberapa sistem yang lebih tua sebelum RCS ditinggalkan gambar.

Garis waktu riwayat kontrol versi

Ian
sumber
1
ketika saya mulai bekerja saya menggunakan VSS .. saya suka komentar selamat datang di neraka . Saya ingat ditanya oleh pimpinan tim saya apakah itu layak untuk diubah karena terpaksa ... persetan ya!
draeron
@draeron, saya menemukan VSS baik-baik saja jika Anda tidak berharap dapat menggabungkan cabang DAN itu pada server file yang stabil. Satu perusahaan tempat saya bekerja memilikinya di server dengan chip ram buruk, jadi terus merusak database! Namun berikan aku terpaksa sebagai gantinya setiap hari dalam seminggu ....
Ian
"Selamat datang di neraka" juga bisa berlaku untuk Clearcase ... shudder
Andrew Kennan
13

Ini mungkin tidak representatif untuk industri game pada umumnya, tetapi ini bekerja dengan baik di perusahaan game kecil kami. Tidak pernah bekerja dengan perangkat lunak bisnis, yang mungkin memiliki persyaratan lain.

Dari pertengahan 80-an hingga pertengahan 90-an saya sering menggunakan nomor versi di akhir nama file, misalnya "game.003". Saat itu saya sedang memprogram 90% di assembler dan semua kode berada dalam satu file besar, mungkin dengan satu atau dua termasuk, di mana saya secara manual harus memperbarui nomor versi ketika hal-hal berubah. Saya hanya akan menambah nomor setelah saya memiliki versi stabil yang saya yakin ingin saya pertahankan.

Ini akhirnya diskalakan dengan nyaman untuk sekitar 3 orang. Setelah itu kami mengembangkan tim dan berakhir dengan kekacauan file di seluruh tempat selama satu tahun atau lebih sampai saya bosan mencoba melacak perubahan individu dan kami mulai menggunakan Perforce sekitar 1997-98.

axl
sumber
6

Anda harus melihat ini dalam konteks infrastruktur bersama pada saat itu. Pada awal tahun 80-an IBM merilis "komputer pribadi" dan Anda dapat mengambil ini secara harfiah. Cara paling umum untuk mengembangkan aplikasi untuk PC adalah membuat satu orang dan mencoba untuk menjualnya. Jadi satu floppy per versi yang dirilis mungkin akan umum. Anda dapat membeli label warna-warni yang bagus dan menuliskan nama produk Anda serta versinya. Untuk sebagian besar produk sukses pada masa itu, Anda tahu nama orang yang menulisnya.

Jaringan diperkenalkan sebagai add-on. API Klien diretas ke dalam DOS dan bagian server didedikasikan, sistem operasi berpemilik pada mesin yang terpisah. Biasanya mahal (bukan untuk massa) dan pada dasarnya hanya menawarkan berbagi file dan printer. Di dunia PC segalanya mulai berubah dengan diperkenalkannya Windows for Workgroups dan Windows NT. Itu membuka banyak kemungkinan. Jaringan akhirnya terintegrasi dalam lingkungan yang dikenal oleh seorang programmer dan seorang programmer Windows dapat menulis aplikasi yang dapat berbicara satu sama lain melalui jaringan. Ini adalah akhir dari NetWare sebagai sistem operasi jaringan yang dominan.

Segera beberapa sistem kontrol versi muncul dengan komponen klien dan server yang dapat Anda instal dengan mudah pada kombinasi mesin apa pun. Dengan plug-in untuk komponen IDE dan klien yang mendukung opsi baris perintah yang memungkinkan integrasi dalam sistem build.

Setelah web lepas landas dan PC-akses ke internet menjadi di mana-mana, Anda mendapatkan gerakan open source dan sistem kontrol sumber berbasis web. Lucunya, ketika PC diperkenalkan ini dipandang sebagai langkah berani dari komputasi terpusat ke komputasi terdistribusi. Tetapi definisi sentral versus didistribusikan telah kabur. Apakah cloud distribusi utama atau hanya komputer pusat monster baru yang memegang semua kekuatan, sama seperti mainframe IBM dulu?

Martin Maat
sumber
1
Netware masih cukup dominan hingga Active Directory diluncurkan dengan win2k. Masih ada banyak hal yang dilakukan Netware dengan baik sehingga AD tidak bisa tanpa baut serius.
Wyatt Barnett
Jadi yang Anda katakan adalah pada saat itu orang dengan mikrokomputer tidak menggunakan kontrol sumber karena mereka tidak membutuhkannya? yaitu hanya satu orang yang membuat program di rumahnya biasanya, jadi tidak perlu berbagi kode atau melakukan penggabungan?
9a3eedi
2
@ 9a3eedi: Saya melukis gambar yang khas. Orang mungkin merasakan kebutuhan itu tetapi itu tidak ada sehingga Anda hidup dengan cara Anda. Menggabungkan kata Anda? Itu terdengar seperti program rumit yang besar. Berapa banyak memori yang dibutuhkan binatang seperti itu? Apa yang tersisa untuk kode yang akan digabung? Saya dapat bertukar disket tetapi jika ingatan saya penuh, ke mana saya harus pergi ?! Tidak sampai orang-orang memiliki "semua memori yang mereka butuhkan" (seperti 640K) bahkan ini mungkin.
Martin Maat
5

Pada 90-an saya pasti menggunakan perangkat lunak untuk kontrol versi. Ada SCCS, dan MPW Apple memiliki kontrol versi bawaan (Proyektor). Dan saya pikir saya menggunakan Proyektor sekitar tahun 1992. Di satu perusahaan sistem kontrol versi adalah sebuah lemari besar dengan floppy disk setiap versi, diambil seminggu sekali.

gnasher729
sumber
SCCS tidak berfungsi pada mikrokomputer. Dan tidak dapat bekerja, karena mengandalkan fitur murni khusus untuk sistem file Solaris (bahkan Unix generik)
gnat
1
@gnat - apakah Anda berbicara tentang SCCS yang sama ? Saya tahu bahwa saya menggunakannya pada Berikutnya di pertengahan tahun 90-an, dan percaya bahwa saya menggunakannya pada berbagai Unaris non-Solaris di akhir tahun 80-an. Dan artikel Wikipedia yang terhubung sepertinya setuju bahwa itu bukan Solaris saja.
kdgregory
3
Cukup yakin saya menggunakan SCCS pada 3B2-400 yang menjalankan Sys V sekitar tahun 1986. ISTR yang kami gunakan itu bukan RCS karena kami bekerja dengan konsultan yang perusahaannya menggunakannya pada sistem Xenix berbasis Z8000 dan ia memiliki beberapa makefile yang mengira itu digunakan.
TMN
1
Saya pasti menggunakan SCCS pada tahun 1984 di Microsoft Xenix yang berjalan pada prosesor Motorola 68000.
Charles E. Grant
2
Memang benar bahwa Linux tidak mendukung SCCS pada 1980-an. Dalam hal ini, dukungan Linux untuk SCCS juga kurang pada tahun 1880-an. SCCS dan program lain (misalnya rn newsreader) di bawah 1980-an Unix menggunakan open (2) untuk membuat file-file kunci penasehat yang berfungsi jika semua pengguna mematuhi protokol yang sama. Karena SCCS adalah yang menciptakan kunci penasihat, bisa dipastikan untuk menghormatinya.
msw
1

Pekerjaan pemrograman musim panas pertama saya ketika saya masih kembali ke sekolah (kira-kira sekitar tahun saya kira) adalah menerapkan manajemen versi otomatis dan sistem cadangan untuk perusahaan kecil tempat saya bekerja. Kami memiliki 3 pcs yang terhubung ke server netware, dan pemilik akhirnya bosan menangani konflik versi dan mencari apa yang perlu dicadangkan ke disket, jadi kami membuat pengembang bekerja di pc mereka sendiri daripada langsung dalam file yang disimpan di server seperti yang mereka miliki sampai sekarang, dan saya menulis sebuah sistem yang membuat semua file mereka diatur untuk dibaca hanya sampai mereka menjalankan program yang memeriksa tidak ada orang lain yang menggunakannya, kemudian mencatat penggunaannya pada database btrieve pusat (database relasional dengan kueri sederhana api daripada sql penuh yang berjalan di server netware). Program lain memeriksa perubahan yang dimodifikasi dan menyalinnya ke server,

Walaupun sistem ini dibuat khusus untuk perusahaan kecil tempat saya bekerja, saya membayangkan banyak toko serupa memiliki proses yang serupa.

Jules
sumber
1

Dari pengalaman pribadi: 1985 pengembangan jaringan MS-DOS PVCS tersedia dan terlalu mahal. Untuk Apple dan semua PC non-MSDOS: tidak ada. Saya menggunakan T-lib ($ 50) dari tahun 1987. Port Unix (SCCS), mulai menyaring sekitar tahun 1990, SourceSafe sekitar tahun 1992.

Pada 1995, jika Anda tidak menggunakan VCS Anda tidak serius.

david.pfx
sumber
Saya akan mengubah kalimat terakhir menjadi 1985 :( Tapi kemudian saya bekerja di bidang keuangan
user151019
@mark: Saya sangat meragukan ini benar untuk pengembangan di PC. Perusahaan kebanyakan mengabaikan PC sampai Windows 3.
david.pfx
Ada banyak pemrograman DOS dan pada 86 saya menggunakan PVCS dan joiner baru memiliki latar belakang Unix tetapi seperti yang dicatat di perbankan dan keuangan sehingga kami mungkin berada di depan
user151019
@mark: PVCS pasti tersedia pada tahun 1985, tetapi terlalu mahal untuk digunakan ($ 000s). Hanya mereka yang pindah dari sistem yang lebih besar dan dengan uang untuk dibakar yang akan menggunakannya.
david.pfx
-1

Pada 1993-1995 saya bersama seorang manajer pensiun dengan 15 pengembang melakukan pengembangan C / C ++ di SunOS dengan SPARCStation 20s dan Sun IPX. Basis kode kami berada di direktori yang dipasang NFS. Awalnya kami melakukan Copy Folder Versioning , tetapi pada beberapa titik kami pindah ke SCCS dan beberapa tim mulai menggunakan RCS .

Pada 1995 saya pindah ke perusahaan lain dengan 80+ pengembang melakukan pengembangan C / C ++ di New York, London, dan Hong Kong. Kami menggunakan ClearCase dengan add-on multi-situs untuk mengelola lingkungan pengembangan.

ClearCase pandai menyinkronkan basis kode antar situs, tetapi pada saat itu diperlukan hampir seorang administrator penuh waktu untuk menjaga semuanya tetap berjalan. Itu juga jauh lebih lambat karena ClearCase menyajikan file dalam sistem file virtual, dengan konfigurasi yang menentukan versi direktori dan nama file wildcard berdasarkan cabang, waktu, dan / atau tag. Dalam kasus patologis, seseorang dapat menentukan setiap file individu untuk memiliki versi yang berbeda.

Ed Griebel
sumber
1
Pertanyaannya menanyakan secara khusus untuk informasi tentang sistem mikro non-unix, tetapi sistem yang Anda gambarkan (pada saat itu) hanya tersedia di workstation unix.
Jules