Apache 서브버전

Apache Subversion
Apache 서브버전
Apache Subversion logo.svg
원저작자콜라보 네트워크
개발자Apache 소프트웨어 재단
초기 릴리즈2000년 10월 20일; 21년(2000-10-20)
안정된 릴리스 [±]
1.14.x LTS1.14.2 / 2022년 4월 12일; 3개월 전(2022-04-12)[1]
프리뷰 릴리즈 [±]
저장소
기입처C
운영 체제
유형리비전 관리
면허증.Apache-2.0[a]
웹 사이트subversion.apache.org Edit this on Wikidata

Apache Subversion(명령어 이름 svn에서 따온 SVN)은 Apache [2]License따라 오픈 소스로 배포되는 소프트웨어 버전리비전 제어 시스템입니다.소프트웨어 개발자는 Subversion을 사용하여 소스 코드, 웹 페이지 및 문서와 같은 파일의 현재 및 이전 버전을 유지합니다.그 목표는 널리 사용되는 동시 버전 시스템(CVS)의 대부분 호환성이 있는 후계자가 되는 것입니다.

오픈 소스 커뮤니티에서는 Subversion을 널리 사용하고 있습니다.를 들어 Apache Software Foundation, Free Pascal, FreeBSD, Source Forge 등의 프로젝트에서 2006년부터 2019년까지 GCC. CodePlex는 Subversion 저장소의 공통 호스트였습니다.

Subversion은 2000년에 CollaborNet Inc.에 의해 만들어졌으며, 현재는 글로벌 기부자 커뮤니티에 의해 구축되어 사용되고 있는 최상위 Apache 프로젝트입니다.

역사

CollaborNet은 2000년에 CVS와 매우 비슷하게 동작하지만 오류를 수정하고 CVS에서 [3]누락된 일부 기능을 제공하는 오픈 소스 버전 관리 시스템을 작성하기 위한 노력의 일환으로 Subversion 프로젝트를 설립했습니다.2001년까지 Subversion은 자체 소스 [3]코드를 호스팅할있을 정도로 발전했으며 2004년 2월에 버전 1.0이 [4]출시되었습니다.2009년 11월, Subversion은 Apache Incubator에 채용되었습니다.이것은 표준적인 최상위 Apache [5]프로젝트가 되기 위한 프로세스의 시작이었습니다.2010년 [6]2월 17일 Apache의 최상위 프로젝트가 되었습니다.

버전 원래 출시일 최신 버전 발매일 상황
이전 버전, 더 이상 유지 보수되지 않음 2004-02-23 1.0.9 2004-10-13 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.1 2004-09-29[7] 1.1.4 2005-04-01 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.2 2005년[8] 5월 21일 1.2.3 2005-08-19 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.3 2005-12-30[9] 1.3.2 2006-05-23 더 이상 지원되지 않음
이전 버전, 더 이상 유지 보수되지 않음 2006-09-10[10] 1.4.6 2007-12-21 더 이상 지원되지 않음
이전 버전, 더 이상 유지 보수되지 않음 2008년[11] 6월 19 1.5.9 2010-12-06 더 이상 지원되지 않음
이전 버전, 더 이상 유지 보수되지 않음 2009-03-20[12] 1.6.23 2013-05-30 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.7 2011년[13] 10월 11일 1.7.22 2015-08-12 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.8 2013-06-18[14] 1.8.19 2017-08-10 더 이상 지원되지 않음
이전 버전, 더 이상 유지 보수되지 않음: 2015-08-05[15] 1.9.12 2019-07-24 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.10 2018-04-13[16] 1.10.8 2022-04-12 더 이상 지원되지 않음
이전 버전, 더 이상 유지 보수되지 않음: 1.11 2018-10-30[17] 1.11.1 2019-01-11 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.12 2019-04-24[18] 1.12.2 2019-07-24 더 이상 지원되지 않음
이전 버전, 유지 보수 불필요: 1.13 2019-10-30[19] 1.13.0 2019-10-30 더 이상 지원되지 않음
현재 안정적인 버전: 1.14 2020년[20] 5월 27일 1.14.2 2022-04-12 완전 지원, LTS
범례:
구버전
이전 버전, 아직 유지 관리됨
최신 버전
최신 프리뷰 버전
향후 출시

출시일은 Apache Subversion에서 추출한 것입니다.CHANGES모든 [21]릴리즈 이력을 기록합니다.

특징들

  • 진정한 아토믹 오퍼레이션으로서 커밋합니다(CVS에서의 커밋 오퍼레이션의 중단은, 저장소 부정합이나 파손의 원인이 됩니다).
  • 이름 변경/복사/이동/삭제된 파일은 전체 개정 내역을 유지합니다.
  • 시스템은 디렉토리, 이름 변경 및 파일 메타데이터의 버전 관리를 유지합니다(타임스탬프에는 해당되지 않음).사용자는 전체 리비전 기록을 유지하면서 전체 디렉토리 트리를 매우 빠르게 이동 및/또는 복사할 수 있습니다.
  • 심볼릭 링크 버전 관리
  • 공간 효율이 뛰어난 바이너리-diff 스토리지를 통한 바이너리 파일 네이티브 지원
  • Apache HTTP Server는 네트워크 서버, WebDAV/Delta-V프로토콜입니다.TCP/IP를 통한 커스텀프로토콜을 사용하는 svnserve라는 독립된 서버 프로세스도 있습니다.
  • 분기는 파일 크기와는 무관한 저렴한[to whom?][clarification needed] 작업입니다(서브버전 자체는 분기와 디렉토리를 구분하지 않습니다).
  • 클라이언트와 서버의 네이티브한 계층형 라이브러리 설계.
  • 클라이언트/서버 프로토콜은 양방향으로 차이를 전송합니다.
  • 비용은 데이터 크기가 아니라 크기 변경에 비례합니다.
  • XML 로그 출력을 포함한 해석 가능한 출력.
  • 오픈 소스 라이선스– Apache License (1.7 릴리즈 이후).이전 버전에서는 Apache Software License 1.1의 파생 버전을 사용합니다.
  • 국제화된 프로그램 메시지
  • 병합할 수 없는 파일("예약된 체크아웃")에 대한 파일 잠금입니다.
  • 패스 베이스 인가
  • C#, PHP, Python, Perl, Ruby 및 Java용 언어 바인딩.
  • 완전한 MIME 지원– 각 파일의 MIME 유형을 표시 또는 변경할 수 있습니다.소프트웨어는 표시된 이전 버전과의 차이점이 있는 MIME 유형을 인식합니다.
  • 머지 트래킹– 브런치 간의 머지가 추적됩니다.이것에 의해, 서브버전에는 머지 대상과 필요 없는 것을 통지하지 않고 브런치간의 자동 머지를 실시할 수 있습니다.
  • 커밋을 커밋 그룹으로 구성하기 위해 체인지리스트.

저장소 유형

Subversion은 두 가지 유형의 저장소 스토리지를 제공합니다.

Berkeley DB(사용되지 않음)

Subversion의 최초 개발에서는 Berkeley DB 패키지를 사용했습니다.데이터베이스에 액세스하는 프로그램이 크래시 또는 강제로 종료될 때 Berkeley DB 사용에 몇 가지 제한이 있습니다.데이터 손실이나 파손은 발생하지 않지만 Berkeley DB가 저널을 재생하고 미결 잠금을 정리하는 동안 저장소는 오프라인 상태로 유지됩니다.Berkeley DB 저장소에서 Subversion을 사용하는 가장 안전한 방법은 공유 파일 시스템이 [22]아닌 단일 사용자로 실행되는 단일 서버 프로세스를 사용하는 것입니다.버클리 DB 백엔드는 버전 1.[23]8에서 더 이상 사용되지 않습니다.

FSFS

2004년에는 새로운 스토리지 서브시스템이 개발되어 FSFS라고 명명되었습니다.파일 수가 많은 디렉토리에서 Berkeley DB 백엔드보다 빠르게 작동하고 로깅이 [22]적기 때문에 디스크 공간도 적게 사용합니다.

Subversion 1.2 이후 FSFS는 새로운 저장소의 기본 데이터스토어가 되었습니다.

"FSFS"의 어원은 Subversion이 저장소 스토리지 시스템에 대해 "파일 시스템"이라는 용어를 사용한 것에 바탕을 두고 있습니다.FSFS는 버클리 DB와 같은 구조화된 시스템이 아닌 운영 체제의 파일 시스템에 컨텐츠를 직접 저장합니다.따라서 FileSystem 상단의 [Subversion] FileSystem이 됩니다.

FSX

FSX라고 불리는 새로운 파일 시스템은 FSFS의 몇 가지 제한을 제거하기 위해 개발 중입니다.Version 1.9 에서는,[24] 실가동 가능한 상태로 간주되지 않았습니다.

저장소 액세스

Subversion 저장소에 액세스할 수 있는 방법은 다음과 같습니다.

  1. 클라이언트가 직접 액세스하는 로컬 파일 시스템 또는 네트워크 파일 시스템.[25]이 모드에서는파일://path 액세스 방식.
  2. Apache 2mod_dav_svn 모듈을 사용하는 WebDAV/Delta-V(http 또는https 경유). 모드에서는 ssl을 사용한 시큐어 접속에는 http://host/path 액세스스킴 또는https://host/path 를 사용합니다.
  3. 커스텀 "svn" 프로토콜(기본 포트 3690), 플레인 텍스트 또는 TCP/IP를 사용합니다.이 모드에서는 암호화되지 않은 트랜스포트에는 svn://host/path 액세스스킴, ssh 경유 터널링에는 svn+ssh://host/path 스킴 중 하나가 사용됩니다.

세 가지 방법 모두 FSFS 및 Berkeley DB 저장소에 액세스할 수 있습니다.

클라이언트의 1.x 버전은 모두 1.x 서버와 함께 사용할 수 있습니다.새로운 클라이언트 및 서버에는 추가 기능과 성능 기능이 있지만 오래된 클라이언트/서버에 [26]대한 폴백 지원이 있습니다.

레이어

내부적으로, 서브버전 시스템은 계층으로 배열된 몇 개의 라이브러리를 포함한다.각각 특정 태스크를 수행하고 개발자가 원하는 수준의 복잡성과 특수성으로 자체 도구를 만들 수 있습니다.

Fs
가장 낮은 수준. 사용자 데이터를 저장하는 버전화된 파일 시스템을 구현합니다.
저장소
파일 시스템 주위에 구축된 저장소에 관심이 있습니다.많은 도우미 기능을 갖추고 있으며, 예를 들어 액션이 실행될 때 실행되는 스크립트 등 저장소가 가질 수 있는 다양한 "훅"을 처리합니다.Fs와 Reposit는 함께 "파일 시스템 인터페이스"를 구성합니다.
mod_dav_davn
Apache 2를 통해 WebDAV/Delta-V 액세스를 제공합니다.
로컬 및 원격 모두에서 "저장소 액세스"를 처리합니다.이 시점부터 저장소는 예를 들어 URL을 사용하여 참조됩니다.
  • 파일:///path/ 로컬액세스용,
  • http://host/path/ 또는 https://host/path/ WebDAV 액세스용
  • SVN 프로토콜의 경우 svn://host/path/ 또는 svn+ssh://host/path/.
고객, WC
최고 레벨.저장소 액세스를 추상화하고 사용자 인증 또는 버전 비교와 같은 일반적인 클라이언트 작업을 제공합니다.서브버전 클라이언트는 Wc 라이브러리를 사용하여 로컬 작업 복사본을 관리합니다.

파일 시스템

Svn 3D-tree.svg

Subversion 파일 시스템은 "2차원"[27]으로 볼 수 있습니다.파일 시스템 항목을 명확하게 지정하기 위해 두 개의 좌표가 사용됩니다.

  • 경로(Unix 계열 OS 파일 시스템의 일반 경로)
  • 리비전

Subversion 파일 시스템의 각 리비전에는 자체 루트가 있으며, 이 루트는 해당 리비전의 콘텐츠에 액세스하는 데 사용됩니다.파일은 최신 변경에 대한 링크로 저장되므로 Subversion 저장소는 매우 작습니다.시스템은 리비전 수가 아닌 변경된 수에 비례하는 스토리지 공간을 사용합니다.

Subversion 파일시스템은 트랜잭션을 사용하여 변경을 아토믹하게 유지합니다.트랜잭션은 지정된 파일 시스템 리비전에서 작동하며, 반드시 최신 버전일 필요는 없습니다.트랜잭션에는 변경이 이루어지는 자체 루트가 있습니다.그런 다음 커밋되어 최신 리비전이 되거나 중단됩니다.트랜잭션은 실제로 오래 지속되는 파일 시스템 개체입니다. 클라이언트는 트랜잭션 자체를 커밋하거나 중단할 필요가 없으며 트랜잭션을 시작하고 종료한 다음 트랜잭션을 다시 열어 계속 사용할 수도 있습니다.여러 클라이언트가 동일한 트랜잭션에 액세스하여 원자 변경 작업을 함께 수행할 수 있지만, 이 기능을 제공하는 기존 클라이언트는 없습니다.

특성.

Subversion 파일 시스템의 한 가지 중요한 기능은 속성입니다. 즉, 단순 이름= 텍스트 쌍입니다.대부분의 속성은 파일 시스템 항목(파일 및 디렉토리)에서 발생합니다.이것들은 파일 시스템에 대한 다른 변경사항과 마찬가지로 버전화 됩니다.Subversion 클라이언트는 기본 제공 속성의 접두사 'svn:'을 예약하지만 다른 이름을 사용하여 사용자 지정 속성을 정의할 수 있습니다.

svn: 설정 가능
파일 시스템에서 지원되는 경우 UNIX 호스트 작업 복사본의 파일을 실행 가능으로 설정합니다.
svn: svn-type
파일의 인터넷 미디어 유형("MIME 유형")을 저장합니다.diff 및 Marge 처리에 영향을 줍니다.
svn: 개요
디렉토리에서 무시할 파일 이름 패턴 목록입니다.CVS와 유사.cvsignore파일.
svn: 개요
변경 시 파일에 대체할 키워드 목록입니다.또한 파일 자체는 키워드를 $keyword$ 또는 $keyword:...$로 참조해야 합니다.이는 사용자의 개입 없이 파일에 특정 정보(작성자, 최종 변경 날짜, 리비전 번호 등)를 유지하기 위해 사용됩니다.
키워드 치환 메커니즘은 RCS[28]CVS에서 발신됩니다.
svn: eol 스타일
클라이언트가 텍스트 파일의 줄 끝 문자를 변환하도록 합니다.특정 EOL 스타일에서 작업 복사본이 필요할 때 사용합니다.일반적으로 "네이티브"가 사용되므로 EOL이 사용자의 OS EOL 스타일에 일치합니다.리포지토리에서는 일관되지 않은 줄 끝을 방지하기 위해 모든 파일에 이 속성이 필요할 수 있으며, 이로 인해 문제가 발생할 수 있습니다.
svn: 외부
다른 리포지토리의 일부를 하위 디렉터리로 자동 체크아웃할 수 있습니다.
svn: svn-lock
읽기 전용으로 설정된 파일 사용 권한으로 파일을 체크아웃하도록 지정합니다.이것은 잠금 메커니즘과 함께 사용하도록 설계되었습니다.읽기 전용 권한은 파일을 수정하기 전에 잠금을 얻어야 함을 알려줍니다. 잠금을 얻으면 파일이 쓰기 가능해지고 잠금을 해제하면 다시 읽기 전용이 됩니다.잠금은 커밋 조작 중에만 적용됩니다.이 속성을 설정하지 않고 잠금을 사용할 수 있습니다.단, 이는 다른 사용자가 잠긴 파일을 수정할 위험이 있기 때문에 권장되지 않습니다.이러한 파일은 커밋이 실패했을 때만 잠긴 것으로 인식됩니다.
svn: 특수
이 속성은 사용자가 직접 설정하거나 수정할 수 없습니다.2010년 시점에서는 저장소에 심볼릭 링크가 있는 경우에만 사용됩니다.저장소에 심볼 링크가 추가되면 링크 대상을 포함하는 파일이 이 속성 세트로 생성됩니다.Unix 계열의 시스템이 이 파일을 체크 아웃 하면, 클라이언트는 이 파일을 심볼릭링크로 변환합니다.
svn: svninfo
Subversion 1.5(또는 그 이후)에서 병합 데이터(리비전 번호)를 추적하는 데 사용됩니다.이 속성은 merge 명령에 의해 자동으로 유지되므로 값을 [29]수동으로 변경하는 것은 권장되지 않습니다.

또한 하위 버전은 수정본 자체의 속성을 사용합니다.파일 시스템 엔트리의 위의 속성과 마찬가지로 이름은 완전히 임의이며, 서브버전 클라이언트는 'svn:'가 앞에 붙는 특정 속성을 사용합니다.단, 이러한 속성은 버전화되지 않으며 사전 revprop-change [30]훅에 의해 허용된 경우 나중에 변경할 수 있습니다.

svn: 날짜
리비전의 날짜와 타임스탬프.
svn: 작성자
변경을 송신한 유저의 이름.
svn: 로그
변경에 대한 사용자 제공 설명.

분기 및 태그 부착

Subversion은 Perforce의 파일[31] 간 분기 모델을 사용하여 분기 및 태깅구현합니다.브랜치는 다른 개발 [32]라인입니다.태그 지정은 나중에 쉽게 찾을 수 있도록 특정 시점에 저장소에 레이블을 지정하는 것입니다.Subversion에서는 브랜치와 태그의 유일한 차이점은 사용방법입니다.

새로운 브랜치 또는 태그는 네이티브 운영체제메커니즘 대신 사용해야 하는 "svn copy" 명령을 사용하여 설정합니다.복사된 디렉토리는 이력을 보존하기 위해 저장소의 원본에 링크되며, 복사본은 저장소에서 여분의 공간을 거의 차지하지 않습니다.

각 분기의 모든 버전은 복사 시점까지 파일의 이력을 유지하고 이후 변경된 내용을 유지합니다.트렁크 또는 지점 간에 변경을 "합병"할 수 있습니다.

alt text
단순 서브버전 프로젝트 시각화

제한사항 및 문제

Subversion에서 알려진 문제는 파일 및 디렉토리 이름 변경 작업의 구현에 영향을 미칩니다.2014년부터 Subversion은 파일 및 디렉토리의 이름을 새 이름으로 "복사"한 후 이전 이름을 "삭제"하는 방식으로 변경합니다.이름만 변경되고 편집 이력과 관련된 모든 데이터는 동일하게 유지되며, Subversion은 이전 버전의 "트리"에서 이전 이름을 계속 사용합니다.그러나 이동이 일반 커밋과 [34]브랜치를 병합할 때 다른 [33]곳에서 수행된 편집과 충돌하면 Subversion이 혼동될 수 있습니다.Subversion 1.5 릴리즈에서는 이러한 시나리오 중 일부에 대처하고 있는 한편,[35] 다른 시나리오에는 문제가 남아 있습니다.Subversion 1.8 릴리즈에서는 클라이언트의 이동을 퍼스트클래스 조작으로 함으로써 이러한 문제의 일부를 해결했습니다만,[36] 여전히 저장소에서는 copy+delete로 취급되고 있습니다.

2013년 현재 Subversion에는 일부 저장소 관리 및 관리 기능이 없습니다.예를 들어 저장소를 편집하여 특정 데이터의 모든 기록 레코드를 영구적으로 제거할 수 있습니다.서브버전에는 이를 [37]단순화하기 위한 지원 기능이 내장되어 있지 않습니다.

서브버전은 로컬머신에 추가 데이터 복사본을 저장합니다.이는 매우 큰 프로젝트나 파일로 인해 문제가 될 수 있으며 개발자가 여러 분기에서 동시에 작업할 경우 문제가 될 수 있습니다.1.7 이전 버전에서는 다음과 같은 기능이 있습니다..svn클라이언트측의 디렉토리는, 글로벌 검색/교환 [38]조작등의 부적절한 유저 액티비티에 의해서 파손될 가능성이 있습니다.버전 1.7 이후 Subversion에서는 작업 [39]영역별로 하나의 중앙 집중식 .svn 폴더를 사용합니다.

Subversion은 파일의 수정 시간을 저장하지 않습니다.따라서 Subversion 저장소에서 체크아웃된 파일은 저장소 내의 수정 시간 대신 '현재' 날짜로, 저장소에 체크인된 파일은 체크인된 파일의 수정 시간 대신 체크인 날짜로 지정됩니다.이것이 항상 [40]원하는 것은 아닐 수도 있다.이를 완화하기 위해 수정 시간 및 기타 파일 시스템 메타 데이터를 [41][42]보존할 수 있는 타사 도구가 있습니다.그러나 체크아웃된 파일을 현재 날짜로 지정하는 것도 중요합니다.make(1)와 같은 툴은 변경된 파일을 재작성하기 위해 주목합니다.

Subversion은 중앙집중식 리비전 제어 모델을 사용합니다.Subversion의 설계자 중 한 명인 Ben Collins-Sussman은 중앙 집중식 모델이 "비보안 프로그래머"가 다른 [43]팀원들에게 작업을 숨기는 것을 방지하는 데 도움이 될 것이라고 믿고 있습니다.일부 버전 관리 시스템 사용자들은 중앙 집중식 모델이 유해하다고 생각합니다. 유명한 것은 Linus Torvalds가 Subversion의 모델과 [44]개발자들을 공격한 것입니다.

서브버전은 대부분의 경우 HFS+ 파일시스템에 의해 실행되는 파일명의 정규화를 처리하지 않습니다.이로 인해 이름에 악센트가 있는 파일이 HFS+ 이외의 파일 시스템의 저장소에 추가되고 저장소가 HFS+[45]와 함께 사용될 때 문제가 발생할 수 있습니다.

서브버전 태그 및 브랜치

리비전 번호는 버전 관리 시스템에서 기억하기 어렵습니다.따라서 대부분의 시스템에서는 심볼 태그를 사용하기 쉬운 참조로 제공합니다.Subversion에는 이러한 기능이 없습니다.또, 그 메뉴얼에서 그 대신에 사용하는 것을 권장하는 것은, 그 성질이 크게 다릅니다.서브버전에서는 이력상의 포인트에 대한 참조로서 태그를 실장하는 것이 아니라 스냅샷 복사를 잘 알려진 서브디렉토리("")에 작성할 것을 권장합니다.tags/저장소 트리 공간에 ")가 있습니다.몇 가지 사전 정의된 참조만 사용할 수 있습니다.HEAD,BASE,PREV그리고.COMMITTED.

이 공간 이력 투영에는 다음과 같은 여러 가지 문제가 있습니다.

  1. 스냅샷이 생성되면 태그/스냅샷 이름에 특별한 의미가 할당되지 않습니다.이것이 복사본과 참조의 차이입니다.리비전이 기록되고 URL을 통해 스냅샷에 액세스할 수 있습니다.이로 인해 조작이 편리하지 않은 경우와 불가능한 경우가 있습니다.예를 들어, 순진한 사람은svn diff -r tag1:tag2 myfile는 동작하지 않습니다.실행하는 것보다 조금 복잡하기 때문에 사용자가 이름뿐만 아니라 스냅샷에 대한 URL/경로를 알고 입력해야 합니다.svn diff <URL-TO-TAG1>/myfile <URL-TO-TAG2>/myfile. 예를 들어 다음과 같은 기타 운영svn log -r tag1:tag2 myfile불가능할 뿐이죠
  2. 저장소 트리에 두 가지(이상적으로 독립적인) 개체 유형이 있는 경우 "상위와의 싸움"이 발생할 수 있습니다.즉, 어떤 레벨에서 작성해야 하는지 결정하는 것이 어려운 경우가 많습니다.tags/서브 디렉토리:
    trunk/ /componentfoo/ /componentbar/ 태그/ /1.1/ /componentfoo/ /componentbar/
    또는
    componentfoo//component bar//component bar//component bar//component bar//components///component foo/
  3. 태그는, 종래의 정의에 의하면, 저장소 및 클라이언트상에서 읽기 전용 태그입니다.서브버전 복사본은 읽기 전용이 아니며 저장소에서는 가볍지만 클라이언트에서는 매우 무겁습니다.

이러한 문제를 해결하기 위해 Subversion 메일링 목록의 포스터는 "라벨" 또는 "에일리어스"[46]라는 새로운 기능을 제안했습니다.SVN 라벨은 CVS나 Git과 같은 다른 시스템의 "태그"와 더 유사합니다.Subversion이 글로벌 리비전 번호를 가지고 있다는 사실은 매우 간단한 라벨 → 리비전 구현으로 가는 길을 열어줍니다.그러나 2013년 현재 진척이 없으며 심볼 태그는 가장 원하는 [47]기능 목록에 없습니다.

개발 및 구현

CollaborNet은 Subversion과의 협력을 계속하고 있지만, 이 프로젝트는 독립된 오픈 소스 커뮤니티로 운영되고 있습니다.2009년 11월 Apache Software Foundation[48]일환으로 Apache Incubator에 프로젝트가 승인되었습니다.2010년 3월부터, 이 프로젝트는 Apache Top-Level [49]Project의 일부로서 Apache Subversion이라고 불리고 있습니다.

2009년 10월, WANdisco는 이 프로젝트의 주요 기업 스폰서가 되기 위해 핵심 Subversion 커밋의 채용을 발표했습니다.여기에는 2008년 초부터 Subversion 프로젝트의 릴리즈 매니저이자 Subversion Corporation의 사장이었던 Hyrum Wright도 포함되어 있습니다.Hyrum Wright는 오픈 소스 [50]팀을 이끌기 위해 입사했습니다.

Subversion 오픈소스 커뮤니티는 바이너리를 제공하지 않지만 잠재적인 사용자는 [51]자원봉사자로부터 바이너리를 다운로드할 수 있습니다.Subversion 프로젝트에는 Subversion과 함께 사용하기 위한 공식 그래피컬 사용자 인터페이스(GUI)가 포함되어 있지 않지만, 서드파티는 다양한 GUI와 다양한 보조 소프트웨어를 개발했습니다.

2009년에 발표된 작업에는 Perforce가 제공하는 것과 유사한 SubversionJ(Java API)와 Obliterate 명령 구현이 포함되어 있습니다.이러한 확장 기능은 모두 WANdisco에 [52]의해 지원되었습니다.

Subversion 커밋은 보통 한 번에 적어도1개 또는 2개의 신기능을 액티브하게 개발하고 있습니다.2011년 10월 Subversion 1.7 릴리즈에는 성능을 향상시키기 위한 간소화된 HTTP 전송과 다시 작성된 작업 복사본 [53]라이브러리가 포함되어 있습니다.

2002년에는 Subversion 로고를 선정하는 디자인 공모전이 열렸다.오리지널 엔트리와 각 로고의 투표는 이쪽에서 확인할 수 있습니다.현재 로고가 콘테스트에서 가장 많은 표를 받았습니다.

「 」를 참조해 주세요.

메모들

  1. ^ 2009-07-07 이후 Apache-2.0

레퍼런스

각주

  1. ^ "Apache Subversion". Retrieved 12 February 2021.
  2. ^ "Subversion". directory.fsf.org. Free Software Directory. 2013. Retrieved 11 September 2013.
  3. ^ a b Collins-Sussman, Ben; Brian W. Fitzpatrick; C. Michael Pilato (2011). "What is Subversion? > Subversion's History". Version Control with Subversion (for Subversion 1.7). Retrieved 15 March 2012.
  4. ^ Benjamin Zeiss (2004). "subversion 1.0 is released". Linux Weekly News. Retrieved 30 March 2014.
  5. ^ Rubinstein, David (4 November 2009). "Subversion joins forces with Apache". SD Times. Archived from the original on 2009-11-11. Retrieved 15 March 2012.
  6. ^ "Subversion is now Apache Subversion". 18 February 2010. Archived from the original on 12 May 2011. Retrieved 15 March 2012.
  7. ^ "Subversion 1.1 Release Notes". Retrieved 2015-09-21.
  8. ^ "Subversion 1.2 Release Notes". Retrieved 2015-09-21.
  9. ^ "Subversion 1.3 Release Notes". Retrieved 2015-09-21.
  10. ^ "Subversion 1.4 Release Notes". Retrieved 2015-09-21.
  11. ^ "Subversion 1.5 Release Notes". Retrieved 2015-09-21.
  12. ^ "Apache Subversion 1.6 Release Notes". Retrieved 2015-09-21.
  13. ^ "Apache Subversion 1.7 Release Notes". Retrieved 2015-09-21.
  14. ^ "Apache Subversion 1.8 Release Notes". Retrieved 2015-09-21.
  15. ^ "Apache Subversion 1.9 Release Notes". Retrieved 2015-09-21.
  16. ^ "Apache Subversion 1.10 Release Notes". Retrieved 2018-04-17.
  17. ^ "Apache Subversion 1.11 Release Notes". Retrieved 2018-10-31.
  18. ^ "Apache Subversion 1.12 Release Notes". Retrieved 2019-05-01.
  19. ^ "Apache Subversion 1.14 Release Notes".
  20. ^ "Apache Subversion 1.14 LTS Release Notes". subversion.apache.org. Retrieved 2020-06-02.
  21. ^ "Apache Subversion's CHANGES file". Retrieved 2018-10-31.
  22. ^ a b Ben Collins-Sussman; Brian W. Fitzpatrick; C. Michael Pilato (2011). "Chapter 5: Strategies for Repository Deployment". Version Control with Subversion: For Subversion 1.7. O'Reilly.
  23. ^ "Apache Subversion 1.8 Release Notes". Apache Project. Retrieved 5 May 2020.
  24. ^ "Apache Subversion 1.9 Release Notes".
  25. ^ Berkeley DB는 파일 잠김에 의존하므로 이를 구현하지 않는 (네트워크) 파일 시스템에서는 사용하지 마십시오.
  26. ^ SVN 1.5 릴리즈 노트
  27. ^ 기본 머지
  28. ^ "rcs(1)". OpenBSD manual pages.
  29. ^ 서브버전 속성
  30. ^ 수정 전 변경
  31. ^ 파일분기: 2007-07-14년 웨이백 머신에 아카이브된 변종나타내는 실용적인 방법
  32. ^ 분기/태그 부착 — 거북이SVN
  33. ^ 실제 이름 변경 구현
  34. ^ 고급 병합
  35. ^ Subversion 1.5의 복사/이동 관련 개량점
  36. ^ 작업복사 레코드는 Subversion 1.8에서 퍼스트 클래스 동작으로 이동
  37. ^ 삭제하다
  38. ^ "Subclipse - Repair SVN Checksum".
  39. ^ 작업 복사 메타데이터 스토리지 개선 사항(클라이언트)
  40. ^ 1256호(Tigris.org)
  41. ^ FreezeAttribute(속성을 사용하여 파일 속성을 저장/복원)
  42. ^ FSVS(고속 시스템 검증)
  43. ^ iBanjo에서의 프로그래머의 불안정성
  44. ^ Google Tech Talk 비디오 및 그 대본
  45. ^ 서브버전:2464호
  46. ^ 예를 들어 다음과 같습니다.
  47. ^ "Apache Subversion Roadmap". Apache Project. Retrieved 5 May 2020.
  48. ^ "Subversion Submitted to Become a Project at The Apache Software Foundation". November 4, 2009. Retrieved October 1, 2019.
  49. ^ "CollabNet Supports Subversion's Graduation to Apache Top-Level Project". CollabNet. 1 March 2010. Archived from the original on 2010-03-11.
  50. ^ WANdisco (January 7, 2010). "WANdisco Names Hyrum Wright to Lead Subversion Open Source Efforts". News release. Open Source magazine. Archived from the original on 2012-01-18. Retrieved October 29, 2011.
  51. ^ "Apache Subversion Binary Packages". Official project website. Retrieved October 29, 2011.
  52. ^ WANdisco (October 28, 2009). "WANdisco Presents New Initiatives for the Subversion Open Source Project". News release. CM Crossroads. Archived from the original on 2011-11-18. Retrieved October 29, 2011.
  53. ^ "Apache Subversion Roadmap". Official project website. Retrieved October 29, 2011.

원천

  • C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick, 버전 관리 및 서브버전, O'Reilly, ISBN 0-596-00448-6 (초판, 페이퍼백, 2004, 풀북 온라인, 미러)
  • Garrett Rooney; 실용적 전복; Apress; ISBN 1-59059-290-5 (초판, 페이퍼백, 2005)
  • Mike Mason, 서브버전을 사용한 프랙티시 버전 관리, 프랙티시 책장, ISBN 0-9745140-6-3 (초판, 페이퍼백, 2005)
  • William Nagel; 서브버전 버전 관리: 개발사업에서의 서브버전 버전 관리 시스템 활용; 프렌티스 홀; ISBN 0-13-185518-2 (제1판, 페이퍼백, 2005)

추가 정보

외부 링크