소스 컨트롤은 언제 발명 되었습니까?


20

CVS, SVN, TFS 등 많은 버전 제어 시스템을 알고 있습니다.

나는 첫 번째 "개정 제어 / 버전 제어 시스템"을 검색했으며 다양한 상충되는 답변을 보았습니다.

소스 컨트롤은 언제 발명 되었습니까? 누가 발명 했습니까? 뭐라고 불 렸어?



18
실제로 여러 번 발명되었지만 소스 코드가 계속 손실됩니다.
Reactgular

4
"소스 제어"를 정의하는 방법에 따라 다르지만 IBM의 IEBUPDTE 는 1962 년으로 거슬러 올라 갔으며 아마도 초기 VCS였습니다.
로스 패터슨

2
경우 버전 파일 시스템은 버전 관리에 동화 될 수 있으며,이 날짜는 1960 년대에 백업 할 수 있습니다.
mouviciel

@RossPatterson, 그 의견은 실제로 대답이 필요합니다.
John R. Strohm

답변:


14

다음은 비디오 형식 (사운드 없음)의 주요 플레이어에 대한 꽤 적절한 타임 라인 입니다.

그것은 SCCS가 약 9 년의 마진으로 첫 번째임을 암시합니다.

http://i.stack.imgur.com/wcAWD.png

이 블로그 와 그에 따른 논평에서 알 수 있듯이 많은 부분이 빠져 있습니다 .


7
SCCS에 원래의 논문은 다른 시스템을 언급하지 않으며,이 용어 자체를 마련했다는 것을 나타내는 것으로 보인다. 그 소스만으로 1972/73 이전 버전 관리 시스템이없는 것처럼 보입니다.
Martijn Pieters

1
소스 코드 제어 시스템의 이름을 "소스 코드 제어 시스템"으로 지정하면 나중에 소프트웨어 카테고리가 된 최초의 사례임을 알 수 있습니다.
Ingo

@MartijnPieters Rochkind는 논문 마지막에 Brown의 CLEAR를 인정하고 OS / MVT에 SCCS를 구축하여 IEBUPDTE를 알지 못했을뿐입니다.
로스 패터슨

@RossPatterson : CLEAR와 IEBUPDTE는 소스 제어 시스템이 아닙니다. CLEAR는 델타에 대한 아이디어로 인정되며, 논문에서 다른 유사성은 없다고 명시 적으로 언급합니다.
Martijn Pieters

3

1981 년 저는 Austin TX의 Charter Information에서 여름 일을했습니다. 그들은 이전에 Woburn MA의 Commercial Information Corporation이었습니다. 그들은 Sigma 7로 필드 업그레이드 된 Xerox Sigma 6을 실행했습니다. 그들은 소스 코드 제어를 위해 SPUD (Source Program Update)라는 것을 사용했습니다. 테이프 기반이었습니다.

나는 정기적으로 "이백년의 SPUD 테이프"를 설치하고 해당 테이프의 코드 조각을 위해 모드 데크에서 작업했습니다. 이 테이프는 1976 년에 기록 되었기 때문에 "이백년의 SPUD 테이프"라고 불렀습니다. 더 오래된 테이프를 사용하여 SPUD가 1976 년보다 더 멀리 돌아갔다는 것을 나타냅니다.

UT Austin (1973-1981)에 재학하는 동안 CDC 6600 이상 메인 프레임에 대한 Control Data Corporation의 두 가지 소스 코드 제어 프로그램 인 MODIFY 및 UPDATE에 반대했습니다. 나는 그들이 언제 언제 나왔는지 모르지만, 6600 년 (메모리가 나에게 도움이된다면)이 1960 년대 후반에 나간 지 얼마 지나지 않아 나왔을 것입니다.

나는 IBM이 다른 사람보다 먼저 무언가를 가지고 있다고 의심하지만 IBM 메인 프레임 역사에 대해 전혀 알지 못하며 그것을 좋아합니다.


CDC MODIFY 및 UPDATE 명령은 내가 할 수있는 한 소프트웨어 업데이트를 적용하는 유틸리티였으며, 소프트웨어 변경 사항을 관리하기위한 것이 아닙니다. 참조 apps.dtic.mil/dtic/tr/fulltext/u2/a208003.pdf (PDF에 61) 페이지 (52) 번호가 페이지의 유틸리티를 설명하고, computinghistory.org.uk/downloads/39256 설명, UPDATE 형식으로 제공되는 # 4 (PDF # 16)의 소프트웨어 릴리스 자료.
Martijn Pieters

Xerox SPUDS (Source Program Update Disk System)도 비슷한 패키지라고 생각합니다.
Martijn Pieters

2

IEBUPDTE의 원래 IBM의 OS / 360 시스템에 대해 생성 프로그램은, 날짜는 10 년 이상 나이가 1962 년에 다시 SCCS . 그 목적은 일련의 변경 사항을 입력 소스 프로그램 세트에 적용하여 수정 된 소스 프로그램 세트를 작성하는 것입니다. 모든 소스 코드는 80 열 펀치 카드 의 "덱" 또는 이와 유사한 파일로 관리되었습니다. 이 소스 프로그램 데크에는 각 라인 또는 카드의 고정 열 세트에 "시퀀스 번호"가 있습니다 ( COBOL1-6 열에서 왼쪽에 위치하도록 지정하고, 다른 모든 항목은 73-80 열에서 오른쪽에 있다고 가정했습니다. 시퀀스 번호는 한 줄씩 증가해야했지만 대부분의 소스 코드는 10 초, 100 초 또는 1000 초 증가하여 나중에 삽입 할 수 있도록 두 줄 사이의 정수 공간에 여유를 두었습니다.

일반적인 IEBUPDTE 컨트롤 데크는 다음과 같습니다.

./ CHANGE NAME=PROG001
         PROGRAM XYZZY                                                  00005000
./ DELETE SEQ1=9000,SEQ2=15000
         DO I=1,10                                                      00026000
./ CHANGE NAME=PROG002
         J=256                                                          00092000
./ ENDUP

두 개의 소스 파일 "PROG001"및 "PROG002"를 수정하여 행 번호 "5000"(대개 "수천 단위"관행에 따른 다섯 번째 행)을 바꾸고 PROG001에서 9000-15000 행을 삭제하고 PROG002에서 92000 행을 바꿉니다. .

가장 간단한 수준에서는 소스 컨트롤의 정의입니다. 유닉스 사람들은 이것을 패치 가 하는 것처럼 인식 하지만 암시 적 대신 명시 적 번호 매기기를 사용합니다. 제어 데크 세트를 입력 프로그램에 순서대로 적용하고 해당 세트를 응집성 디스크 파일 ( 파티션 된 데이터 세트 ) 로 저장하는 것이 일반적이었습니다 . 이는 CVSRCS,v파일에 저장 하는 변경 히스토리 와 강력하게 유사 합니다. IBM은 종종 SubversionGit 사용자에게 친숙한 단일 관련 변경 세트의 일부로 파일을 수정 한 대형 제어 데크의 형태로 프로그램 임시 수정 (PTF) 이라는 코드 패치를 제공합니다 .


IEBUDTE는 소프트웨어 업데이트 시스템이 아닙니까? 패치와 유사하므로 기껏 해야 버전 관리 시스템 의 구성 요소 입니다. 내가 할 수있는 한 시간에 따른 변화의 그래프는 없습니다.
Martijn Pieters

그래, IEBUPDTE비슷합니다 patch.
로스 패터슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.