인터리브 삼각주
Interleaved deltas![]() |
인터리브델타(SCCS 위브)는 파일의 모든 리비전을 저장하기 위해 소스 코드 제어 시스템에 의해 사용되는 방법입니다.모든 리비전의 모든 행은 단일 데이터 블록으로 "결합"되며, 파일의 리비전에 포함되는 행을 나타내는 제어 명령이 삽입됩니다.인터리브된 델타는 전통적으로 라인 지향 텍스트파일을 염두에 두고 구현되지만 메서드가 바이너리 파일에도 적용되지 않도록 하는 것은 없습니다.
인터리브 델타는 1975년 SCCS에서 Marc Rochkind에 의해 처음 구현되었습니다.이 설계에서는 모든 버전을 동시에 사용할 수 있으므로 리비전을 가져오는 데 같은 시간이 걸립니다.또, 1 [1]블록내의 각 행(블레이밍)의 작성자를 식별하기 위한 충분한 정보도 포함되어 있습니다.한편, 파일의 모든 리비전이 해석되기 때문에 리비전이 추가될수록 모든 작업이 느려집니다.인터리브 델타라는 용어는 1982년 월터 F에 의해 만들어졌다. SCCS 직물을 RCS의 [2]새로운 리버스 델타 메커니즘과 비교하는 리비전 제어 시스템의 저자인 Tichy.
SCCS에서의 실장
SCCS에서는 다음 위브블록
^AI 1 ^AD 2 foo ^AE 2 bar ^AI 2 baz ^AE 2 ^AE 1
는 첫 번째 릴리스에서는 "foo" 및 "bar" 행과 두 번째 리비전에서는 "bar" 및 "baz" 행이 포함된 파일을 나타냅니다.문자열 "^A"는 control-A 문자를 나타냅니다.
인터리브 델타 블록의 제어선에는 다음과 같은 [3]의미가 있습니다.
- ^AI serial 이름 있는 일련 번호로 삽입된 줄 블록을 시작합니다.
- ^AD serial 이름 있는 일련 번호로 제거된 줄 블록을 시작합니다.
- ^AE 시리얼 같은 시리얼 번호를 사용하는 대응하는 ^AI 또는 ^AD 문의 블록 엔드.
이점
이러한 인터리브 델타 블록에서 리비전을 추출하는 데 걸리는 시간은 아카이브 크기에 비례합니다.아카이브의 크기는 모든 수정본에 있는 모든 다른 행의 크기를 합한 것입니다.
특정 리비전을 추출하기 위해서는 인터리브된 델타에서 시리얼 번호로 태그된 특정 블록을 출력에 복사할지 여부를 알려주는 구조체 배열을 구성해야 합니다.최초의 SCCS 실장에서는, 특정의 리비전을 추출하는 방법을 알기 위해서, 델타의 다른 시리얼 번호 마다 약 100 바이트의 스토리지가 필요합니다.따라서 100만 개의 델타가 있는SCCS 이력 파일에서는 압축을 풀려면 100 MB의 가상 메모리가 필요합니다.주석 첨부 파일 검색이 필요하지 않은 경우 델타당 약 32바이트를 줄일 수 있습니다.
짜임 방법의 장점은 다음과 같습니다.
- 파일의 모든 리비전의 균일한 취득 시간.
- 마지막 변경사항, 마지막 변경사항 작성자 및 마지막 변경시간을 추가 비용 없이 파일의 모든 줄에 주석을 달 수 있습니다.
- 중복되지 않는 지점에 추가 비용 없이 병합할 수 있습니다.
인터리브 델타를 사용하는 소프트웨어
바자는 2006년에 [5]인터리브된 델타를 사용할 예정이었으나 실제로 bzr 0.1에서 구현된 후 성능 저하로 폐기되었습니다.또한 위브 스타일의 병합 [6]알고리즘을 제공합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ http://www.basepath.com/aup/talks/SCCS-Slideshow.pdf Rochkind, Marc."SCCS(Source Code Control System)" 소프트웨어 엔지니어링 1, No.4에서의 IEEE 트랜잭션(1975년)
- ^ Tichy, Walter (1982). "Design, implementation, and evaluation of a Revision Control System". ICSE '82 Proceedings of the 6th International Conference on Software Engineering: 58–67. Retrieved 12 June 2012.
- ^ http://sccs.sourceforge.net/man/sccsfile.4.html sccsfile(4) 매뉴얼페이지
- ^ "Intro to binary weave". www.bitkeeper.org.
- ^ "Archived copy". blog.fxa.org. Archived from the original on 6 October 2006. Retrieved 12 January 2022.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "BzrWeaveFormat". Bzr Wiki. Retrieved 16 January 2020.