Kiểm soát phiên bản hoạt động như thế nào trên các máy vi tính thời đó trong thập niên 80 và 90?


31

Tôi tò mò muốn biết làm thế nào các nhóm lập trình viên thường quản lý sự phát triển phần mềm của họ từ những năm 80 và đầu thập niên 90. Có phải tất cả mã nguồn được lưu trữ đơn giản trên một máy mà mọi người đều làm việc hoặc là nguồn được truyền xung quanh và sao chép thủ công qua đĩa mềm và được hợp nhất thủ công hoặc họ thực sự sử dụng các hệ thống kiểm soát sửa đổi qua mạng (ví dụ CVS) như cách chúng tôi làm hiện nay? Hoặc có lẽ một cái gì đó giống như một CVS ngoại tuyến đã được sử dụng?

Ngày nay mọi người đều phụ thuộc vào kiểm soát nguồn .. đó là điều không có trí tuệ. Nhưng vào thập niên 80, các mạng máy tính không dễ cài đặt và những thứ như thực tiễn tốt nhất vẫn đang được tìm ra ...

Tôi biết rằng trong những năm 70 và 60 lập trình khá khác nhau nên việc kiểm soát sửa đổi là không cần thiết. Nhưng vào thập niên 80 và 90, mọi người bắt đầu sử dụng máy tính để viết mã và các ứng dụng bắt đầu tăng kích thước và phạm vi, vì vậy tôi tự hỏi làm thế nào mọi người quản lý tất cả những điều đó trước đó.

Ngoài ra, điều này khác nhau như thế nào giữa các nền tảng? Nói Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari

Lưu ý: Tôi chủ yếu nói về lập trình trên các máy vi tính thời đó chứ không phải các máy UNIX lớn.


3
RCS ban đầu được phát hành vào năm 1982.
5gon12eder

1
Nhưng có bao nhiêu người đã sử dụng nó? RCS là AFAIK được tạo cho Unix và các máy giống như unix không chạy trên máy vi tính.
9a3eedi

2
Chúng tôi đã có hệ thống mạng. Chỉ cần giải quyết trên tcp / ip, có những cái khác, giống như decnet. Chia sẻ tập tin đã có sẵn trong một số giao thức. Và các nhóm đã phát triển trên minis ngay cả đối với micros, mặc dù một số nhà phát triển độc lập nhỏ (không phải nhóm), chỉ thực hiện sao lưu thay vì phiên bản sử dụng điều khiển chính thức. Một số có thể mô phỏng kiểm soát phiên bản với sao lưu thủ công nghiêm ngặt.
Erik Eidt

2
Chúng tôi đã làm điều đó rất cẩn thận, chủ yếu là trên mạng, bởi vì những gì bạn nghĩ về kiểm soát phiên bản không tồn tại trên các nền tảng mà bạn đề cập.
Blrfl

2
Trong trường hợp của tôi, chúng tôi đã sử dụng các cỗ bài đục lỗ cho máy tính mini vào đầu những năm 1980. Đôi khi, chúng tôi sẽ lưu các sàn mã nguồn trong tủ hồ sơ thẻ đục lỗ.
Gilbert Le Blanc

Câu trả lời:


22

Đầu tiên khi các máy vi tính xuất hiện lần đầu tiên, phần mềm này hầu hết được viết trên các hệ thống Unix hoặc VMS và trình biên dịch chéo / lắp ráp trên hệ thống đích. Các hệ thống máy tính này thường có nhiều người dùng với nhiều thiết bị đầu cuối và có các hệ thống điều khiển được mã hóa nguồn như SCCS .

Mạng là một tùy chọn trên máy vi tính từ giữa những năm 1980, thường được kết nối với hệ thống Unix dưới dạng "máy chủ tệp" (có thể chỉ sử dụng RS232 và Kermit để truyền tệp, với SCCS trên hệ thống Unix)

Xem Lịch sử kiểm soát phiên bản của Eric chìm để có cái nhìn tổng quan về cách hệ thống kiểm soát phiên bản đã thay đổi qua nhiều năm.

Tôi nhớ lại việc đọc về kiểm soát mã nguồn trong "BYTE" vào cuối những năm 1980, do đó nó phải được sử dụng trên "các hệ thống nhỏ" trước đó.

SourceSafe được thiết lập tốt vào giữa những năm 90 chạy trên Dos, Windows, v.v.

Liên kết này cho thấy một bài viết về PVCS chạy trên PC từ năm 1994 , nó ở phiên bản 6.2 nên rõ ràng đã có từ lâu, Wikipedia cho biết nó có từ năm 1985 .


Tuy nhiên, các đĩa mềm được đánh số được sử dụng bởi hầu hết các lập trình viên làm việc trên phần mềm quy mô nhỏ cho đến cuối những năm 1990, để được thay thế bằng các thư mục trên đĩa cứng của họ, tạo một bản sao của mã nguồn mỗi ngày.

Tôi nhớ làm việc trên một phần mềm chuyển dự án từ Đơn vị sang Windows NT 3.5. Các lập trình viên biết cách lập trình cho Windows thường không nghe thấy về kiểm soát mã nguồn tại thời điểm đó.


Dòng thời gian này được lấy từ một bài đăng trên blog của codicesoftware , họ bán Plastic SCM, tuy nhiên tổng quan về lịch sử của các hệ thống khác có vẻ hợp lý, một vài hệ thống cũ hơn trước khi RCS rời khỏi hình ảnh.

Dòng thời gian của lịch sử kiểm soát phiên bản


1
Khi tôi bắt đầu làm việc tôi đã sử dụng VSS .. tôi thích sự chào đón đến bình luận địa ngục . Tôi nhớ đã được hỏi bởi trưởng nhóm của tôi nếu nó có giá trị để thay đổi cho lực lượng ... đúng vậy!
Draineron

@draeron, tôi thấy VSS vẫn ổn nếu bạn không mong đợi có thể hợp nhất các nhánh VÀ nó nằm trên một máy chủ tệp ổn định. Một công ty tôi làm việc đã có nó trên một máy chủ có chip ram xấu, vì vậy tiếp tục làm hỏng cơ sở dữ liệu! Tuy nhiên, hãy cho tôi sức mạnh thay vì bất kỳ ngày nào trong tuần ....
Ian

"Chào mừng đến địa ngục" cũng có thể áp dụng cho Clearcase ... rùng mình
Andrew Kennan

13

Đây có lẽ không phải là đại diện cho ngành công nghiệp trò chơi nói chung, nhưng nó hoạt động tốt trong công ty trò chơi nhỏ của chúng tôi. Không bao giờ làm việc với phần mềm kinh doanh, có lẽ có các yêu cầu khác.

Từ giữa thập niên 80 đến giữa thập niên 90, tôi thường sử dụng số phiên bản ở cuối tên tệp, ví dụ: "game.003". Trước đó, tôi đã lập trình 90% trong trình biên dịch chương trình và tất cả mã nằm trong một tệp lớn, có thể có một hoặc hai bao gồm, trong đó tôi phải tự cập nhật số phiên bản khi mọi thứ thay đổi. Tôi chỉ tăng số sau khi tôi có phiên bản ổn định mà tôi chắc chắn muốn giữ.

Điều này cuối cùng đã mở rộng phần nào thoải mái cho khoảng 3 người. Sau đó, chúng tôi đã phát triển nhóm và cuối cùng đã có một đống hồ sơ lộn xộn trong suốt một năm hoặc lâu hơn cho đến khi tôi chán ngấy với việc cố gắng theo dõi những thay đổi của từng người và chúng tôi bắt đầu sử dụng Perforce vào khoảng năm 1997-98.


6

Bạn phải thấy điều này trong bối cảnh cơ sở hạ tầng phổ biến tại thời điểm đó. Vào đầu những năm 80, IBM đã phát hành "máy tính cá nhân" và bạn có thể thực hiện điều này hoàn toàn theo nghĩa đen. Cách phổ biến nhất để phát triển ứng dụng cho PC là một anh chàng tạo ra thứ gì đó và cố gắng bán nó. Vì vậy, một đĩa mềm cho mỗi phiên bản phát hành có thể là phổ biến. Bạn có thể mua một số nhãn đầy màu sắc đẹp và viết tên sản phẩm của bạn và phiên bản trên đó. Trong hầu hết các sản phẩm thành công của những ngày đó, bạn biết tên của người đã viết nó.

Mạng được giới thiệu là tiện ích bổ sung. API khách hàng đã bị hack vào DOS và các bộ phận máy chủ là các hệ điều hành riêng, dành riêng trên một máy riêng biệt. Thường đắt tiền (không dành cho số đông) và về cơ bản chỉ cung cấp chia sẻ tệp và máy in. Trong thế giới PC, mọi thứ bắt đầu thay đổi khi giới thiệu Windows cho nhóm làm việc và Windows NT. Điều đó đã mở ra rất nhiều khả năng. Mạng cuối cùng đã được tích hợp trong môi trường mà một lập trình viên quen thuộc và một lập trình viên Windows có thể viết các ứng dụng có thể nói chuyện với nhau qua mạng. Đây là sự kết thúc của NetWare với tư cách là hệ điều hành mạng thống trị.

Ngay sau đó, một số hệ thống kiểm soát phiên bản xuất hiện với các thành phần máy khách và máy chủ mà bạn có thể dễ dàng cài đặt trên bất kỳ tổ hợp máy nào. Với các trình cắm cho các thành phần máy khách và IDE hỗ trợ các tùy chọn dòng lệnh cho phép tích hợp trong hệ thống xây dựng.

Sau khi web tắt và truy cập PC vào internet trở nên phổ biến, bạn đã có được sự di chuyển nguồn mở và các hệ thống kiểm soát nguồn dựa trên web. Điều buồn cười là, khi PC được giới thiệu, đây được xem là một bước đi táo bạo từ điện toán tập trung sang điện toán phân tán. Nhưng định nghĩa của trung tâm so với phân phối đã mờ. Đám mây có phải là bản phân phối cuối cùng hay nó chỉ là máy tính trung tâm quái vật mới nắm giữ toàn bộ sức mạnh, giống như máy tính lớn của IBM từng là?


1
Netware vẫn chiếm ưu thế cho đến khi Active Directory ra mắt với win2k. Vẫn còn rất nhiều điều mà Netware đã làm tốt mà AD không thể không có những cú hích nghiêm trọng.
Wyatt Barnett

Vì vậy, những gì bạn đang nói là vào thời điểm đó, những người có máy vi tính không sử dụng kiểm soát nguồn vì họ không cần nó? tức là chỉ có một anh chàng làm chương trình trong nhà anh ta, nên không cần chia sẻ mã hay hợp nhất?
9a3eedi

2
@ 9a3eedi: Tôi đang vẽ một bức tranh điển hình. Mọi người có thể đã cảm thấy cần thiết nhưng nó không ở đó nên bạn sống bằng phương tiện của mình. Sáp nhập bạn nói gì? Nghe có vẻ như một chương trình phức tạp lớn. Một con thú như vậy cần bao nhiêu bộ nhớ? Những gì sẽ còn lại cho mã được sáp nhập? Tôi có thể trao đổi đĩa mềm nhưng nếu bộ nhớ của tôi đầy, tôi sẽ đi đâu?! Mãi cho đến khi mọi người có "tất cả bộ nhớ họ cần" (như 640K) thì điều này thậm chí còn có thể.
Martin Maat

5

Trong những năm 90, tôi chắc chắn đã sử dụng phần mềm để kiểm soát phiên bản. Có SCCS và MPW của Apple có điều khiển phiên bản tích hợp (Máy chiếu). Và tôi nghĩ rằng tôi đã sử dụng Máy chiếu vào khoảng năm 1992. Tại một công ty, hệ thống kiểm soát phiên bản là một tủ lớn với các đĩa mềm của mọi phiên bản, được thực hiện mỗi tuần một lần.


SCCS không hoạt động trên máy vi tính. Và không thể hoạt động được, bởi vì nó dựa vào một tính năng hoàn toàn dành riêng cho hệ thống tập tin Solaris (thậm chí không phải là Unix)
gnat

1
@gnat - bạn đang nói về cùng một SCCS ? Tôi biết rằng tôi đã sử dụng nó vào Next vào giữa những năm 90 và tin rằng tôi đã sử dụng nó trên nhiều Unice Solaris khác nhau vào cuối những năm 80. Và bài viết Wikipedia được liên kết dường như đồng ý rằng nó không chỉ dành cho Solaris.
kdgregory

3
Khá chắc chắn rằng tôi đã sử dụng SCCS trên Sys V chạy 3B2-400 vào khoảng năm 1986. ISTR rằng chúng tôi đã sử dụng nó thay vì RCS vì chúng tôi đã làm việc với chuyên gia tư vấn có công ty sử dụng nó trên hệ thống Xenix dựa trên Z8000 của họ và anh ta có một số người tạo ra nó. đã được dùng.
TMN

1
Tôi chắc chắn đã sử dụng SCCS vào năm 1984 trên Microsoft Xenix chạy trên bộ xử lý Motorola 68000.
Charles E. Grant

2
Đúng là Linux đã không hỗ trợ SCCS trong những năm 1980. Đối với vấn đề đó, Linux cũng hỗ trợ cho SCCS vào những năm 1880. SCCS và các chương trình khác (ví dụ: rn newsreader) trong những năm 1980 Unix đã sử dụng open (2) để tạo các tệp khóa tư vấn hoạt động nếu tất cả người dùng tuân theo cùng một giao thức. Vì SCCS là người tạo ra các khóa tư vấn, nên có thể chắc chắn tôn trọng chúng.
msw

1

Công việc lập trình mùa hè đầu tiên của tôi khi tôi còn đi học (điều này sẽ xảy ra vào khoảng năm 91 tôi nghĩ) là triển khai hệ thống quản lý và sao lưu phiên bản tự động cho công ty nhỏ mà tôi đang làm việc. Chúng tôi đã có 3 chiếc được nối với một máy chủ netware và chủ sở hữu cuối cùng đã cảm thấy mệt mỏi khi xử lý các xung đột phiên bản và tìm ra những gì cần sao lưu vào đĩa mềm, vì vậy chúng tôi đã khiến các nhà phát triển làm việc trên máy tính của riêng họ thay vì trực tiếp trong các tệp được lưu trữ trên máy chủ như họ đã có cho đến bây giờ, và tôi đã viết một hệ thống giữ tất cả các tệp của họ được đặt thành chỉ đọc cho đến khi họ chạy một chương trình kiểm tra không ai khác đang sử dụng chúng, sau đó ghi lại việc sử dụng trên cơ sở dữ liệu trung tâm (cơ sở dữ liệu quan hệ với một truy vấn đơn giản api chứ không phải sql đầy đủ chạy trên máy chủ netware). Một chương trình khác đã kiểm tra các thay đổi đã sửa đổi của họ và sao chép chúng vào máy chủ,

Trong khi hệ thống này được xây dựng tùy chỉnh cho công ty nhỏ mà tôi làm việc, tôi tưởng tượng nhiều cửa hàng tương tự có quy trình tương tự.


1

Từ kinh nghiệm cá nhân: 1985 PVCS phát triển nối mạng MS-DOS đã có sẵn và quá đắt. Đối với Apple và tất cả các PC không phải MSDOS: không có gì. Tôi đã sử dụng T-lib ($ 50) từ năm 1987. Các cổng Unix (SCCS), bắt đầu lọc xuống khoảng năm 1990, SourceSafe vào khoảng năm 1992.

Đến năm 1995, nếu bạn không sử dụng VCS, bạn không nghiêm túc.


Tôi sẽ thay đổi câu cuối cùng thành 1985 :( Nhưng sau đó tôi đã làm việc trong lĩnh vực tài chính
user151019

@mark: Tôi rất nghi ngờ điều này đúng với sự phát triển trên PC. Tập đoàn hầu hết bỏ qua PC cho đến Windows 3.
david.pfx 20/2/2016

Có rất nhiều lập trình DOS và vào năm 86 tôi đã sử dụng PVCS và những người mới tham gia có nền tảng Unix nhưng như đã lưu ý rằng đó là về ngân hàng và tài chính nên chúng tôi có thể đã đi trước
user151019

@mark: PVCS chắc chắn có sẵn vào năm 1985, nhưng quá đắt đối với hầu hết để sử dụng (000 đô la). Chỉ những người chuyển từ các hệ thống lớn hơn và có tiền để đốt mới được sử dụng nó.
david.pfx

-1

Vào năm 1993-1995, tôi đã làm việc với một người quản lý lương hưu với 15 nhà phát triển thực hiện phát triển C / C ++ trong SunOS với SPARCStation 20s và Sun IPX. Codebase của chúng tôi là trong các thư mục gắn NFS. Ban đầu chúng tôi đang thực hiện Sao chép phiên bản thư mục , nhưng tại một số điểm, chúng tôi đã chuyển sang SCCS và một số nhóm bắt đầu sử dụng RCS .

Năm 1995, tôi chuyển đến một công ty khác với hơn 80 nhà phát triển đang thực hiện phát triển C / C ++ tại New York, London và Hồng Kông. Chúng tôi đã sử dụng ClearCase với tiện ích bổ sung đa trang web để quản lý môi trường phát triển.

ClearCase rất tốt trong việc đồng bộ hóa cơ sở mã giữa các trang web, nhưng tại thời điểm đó cần gần như một quản trị viên toàn thời gian để duy trì mọi thứ hoạt động. Nó cũng chậm hơn nhiều vì ClearCase trình bày các tệp trong một hệ thống tệp ảo, với cấu hình chỉ định các phiên bản của thư mục và tên tệp được ký tự đại diện dựa trên các nhánh, thời gian và / hoặc thẻ. Trong trường hợp bệnh lý, người ta có thể chỉ định mỗi tệp riêng lẻ có một phiên bản khác nhau.


1
Câu hỏi yêu cầu cụ thể về thông tin về các hệ thống vi mô không trộn, nhưng các hệ thống bạn mô tả là (tại thời điểm đó) chỉ có sẵn trên các máy trạm unix.
Jules
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.