SVN에서 태그와 분기의 차이점은 무엇입니까?
저는 SVN Branches 및 TRUNK에서 수년간 일하고 있지만 TAG로는 절대로 일하지 않습니다.
누군가가 그들 사이의 주요 차이점을 조언 할 수 있습니까? 태깅의 주요 목적은 무엇입니까?
이것은 http://svnbook.red-bean.com/en/1.5/svn.branchmerge.tags.html 에서 가져온 것입니다 .
하지만 잠시만 기다려주세요.이 태그 생성 절차는 브랜치를 생성 할 때 사용한 절차와 동일하지 않나요? 예, 사실입니다. Subversion에서는 태그와 브랜치 사이에 차이가 없습니다. 둘 다 복사에 의해 생성되는 일반적인 디렉토리입니다. 브랜치와 마찬가지로 복사 된 디렉토리가 "태그"인 유일한 이유는 사람이 그렇게 처리하기로 결정했기 때문입니다 . 아무도 디렉토리에 커밋하지 않는 한 영원히 스냅 샷으로 남습니다. 사람들이 그것에 헌신하기 시작하면 지점이됩니다.
기술적으로는 분기와 동일하지만 개념적으로는 스냅 샷으로 간주합니다. 내 svn 리포지토리에서 브랜치에는 트렁크에 병합되거나 병합되지 않았을 수도있는 큰 기능이 포함된다는 것을 알고 있지만 태그를 사용하여 릴리스 버전 만 표시합니다.
유일한 차이점은 당신이 그들을 사용하는 것입니다.
브랜치는 메인 트렁크에 대한 다른 버전의 코드에 대한 작업을 개발할 수있는 곳입니다.
태그는 릴리스를 "태그"하는 데 사용됩니다. 내가 트렁크에서만 일한다고 가정 해 봅시다. V1을 고객에게 보낼 때 "V1 태그"를 생성합니다. 그런 다음 V2에서 작업합니다. 고객이 V1에 문제가있는 경우 태그를 확인하고 고객과 똑같은 버전에서 문제 디버깅을 시작할 수 있습니다. 태그에 체크인 할 수 있지만 해서는 안됩니다 . V1.1 릴리스를 수행해야하는 경우 V1 태그와 동일한 버전에서 브랜치를 생성하고 수정 사항을 체크인하고 V1.1로 릴리스 될 때 태그를 지정합니다.
"트렁크"및 "브랜치"는 일반적으로 활성 및 현재 개발에 사용됩니다. 사용자가 파일을 커밋 / 체크 아웃하는 곳입니다. 일반적으로 많은 활동이 발생하는 곳입니다.
반면에 "태그"는 일반적으로 개발의 스냅 샷과 마일스톤을 만드는 데 사용됩니다. 팀이 태그 폴더에서 커밋 / 체크 아웃하는 것은 실제로 이상적이지 않습니다.
다음은 태그 적용 가능성의 두 가지 예입니다.
브랜치 보관-릴리스 또는 기능 브랜치가 완료되거나 완전히 폐기 된 경우 일반적으로 브랜치를 삭제하고 HEAD 개정에서 효과적으로 숨길 수 있습니다. 일부 사람들은 모든 릴리스 / 프로젝트를보고 싶어하기 때문에 보관을 위해 이러한 폴더를 일반적으로 삭제하지 않습니다. 그래도 분기 트리를 탐색하기 어려울 수 있습니다. 그렇기 때문에 브랜치 폴더의 HEAD 개정판에 활성 및 실행중인 프로젝트 릴리스 및 기능 만 유지하는 것이 좋습니다. HEAD 개정판에서 계속 볼 수 있도록 보관 된 분기의 마지막 개정판의 태그 사본을 만들 수 있습니다. 이렇게하면 브랜치가 보관되기 전에 브랜치의 마지막 개정에 대한 빠른 스냅 샷을 얻을 수 있고 브랜치 트리의 항목을 깔끔하게 유지할 수 있습니다.
마일스톤 유지-프로젝트에는 일반적으로 여러 단계의 개발 단계가 있습니다. Dev, UT, QA, pre-QA, post-QA, BAT, post-BAT, PROD, pre-PROD, post-PROD. 수정 번호, 날짜 또는 주석에 의존하는 대신 태그를 사용하여 모든 중요한 단계에서 개발의 스냅 샷을 만들 수 있습니다.
태그는 사물을 정리하는 데 큰 도움이 될 수 있지만 때로는 혼란 스러울 수도 있습니다. 태그 폴더의 이름을 지정하기위한 표준 이름 지정 규칙을 갖는 것이 중요합니다.
태그와 분기는 기술적으로 동일합니다. 차이점은 일반적으로 사용되는 방법입니다.
브랜치를 사용하여 편집 가능한 코드 사본을 만들어 안정적인 사본과 작업 사본을 동시에 개발할 수 있습니다.
나중에 편리하게 해당 코드를 가져올 수 있도록 태그를 사용하여 코드의 읽기 전용 사본을 만듭니다. 이것이 일일 빌드에 사용되는 방법입니다. 각 일일 빌드는 해당 빌드 번호가 포함 된 이름으로 태그를 생성합니다. 오래 전 빌드의 소스를 나중에 가져와야하는 경우 (예 : 버그 재현) 해당 태그에서 내보내기 만하면됩니다.
참조 URL : https://stackoverflow.com/questions/6938486/what-is-the-difference-between-a-tag-and-a-branch-in-svn
'Program Club' 카테고리의 다른 글
| https URL의 사용자 이름 및 비밀번호 (0) | 2021.01.07 |
|---|---|
| VBA의 다중 스레딩 (0) | 2021.01.07 |
| win API를 사용하여 HRESULT 값의 문자열 표현을 얻는 방법이 있습니까? (0) | 2021.01.07 |
| datetime.datetime을 datetime.date와 비교할 수 없습니다. (0) | 2021.01.07 |
| Makefile에서 메시지를 어떻게 인쇄 할 수 있습니까? (0) | 2021.01.07 |