development

작업 카피 란 무엇이며 Tortoise SVN에서 "전환"이 어떤 역할을합니까?

big-blog 2020. 12. 5. 10:07
반응형

작업 카피 란 무엇이며 Tortoise SVN에서 "전환"이 어떤 역할을합니까?


소프트웨어 앱이 있고 중요한 이정표 인 2.0 버전을 달성했습니다.

이 버전을 "Version-2.0"으로 태그하기로 결정 했으므로이 스냅 샷의 이름을 지정했습니다. 또한 문제를 해결하고 트렁크에 다시 병합해야하는 경우를 대비하여 "버전 -2.0"분기를 만들었습니다.

Tortoise SVN 도움말 파일을 읽은 후 "작업 복사본"을 새로 생성 된 브랜치로 전환 할 수 있다고 알려줍니다.

이것은 무엇을 의미 하는가?

현재 나는 다음을 가지고 있습니다.

/ Project / Trunk /
/ Project / Tags /
/ Project / Branches /

모두 체크 아웃했습니다. 그렇다면 "전환"의 요점은 무엇일까요? 현재는 / trunk 폴더로 이동하여 작업을 수행합니다. 태그와 브랜치를 만들었을 때 업데이트를 한 후 / Tags / 및 / Branches / 폴더에 폴더를 생성했습니다.

/Branches/Experiemental-v3.0/으로 이동하여 원하는 경우 작업을 수행하지 않는 이유는 무엇입니까?

누군가 "Working Copy"와 "Switching"의 개념을 설명해 줄 수 있습니까? 내가 무엇을 놓치고 있습니까? 사람들은 일반적으로 전체 저장소를 체크 아웃하지 않습니까?


작업 복사본은 작업 영역으로 체크 아웃 한 복사본입니다. 가지인지 트렁크인지는 중요하지 않습니다. 그것은 당신이 일하고있는 것입니다.

svn 스위치를 사용하여 동일한 부모의 분기 (또는 더 정확한 복사본)간에 전환 할 수 있습니다. 이것은 기본적으로 현재 작업 복사본과 내가 전환하는 분기의 차이점을 말합니다. 그런 다음 현재 작업 복사본에서 전환 한 분기의 개정판으로 업데이트를 수행합니다.

따라서 작업 사본은 귀하의 체크 아웃이지만 획득되었습니다.

전환은 작업 복사본이 커밋되는 분기를 변경하는 것입니다. 커밋이 갈 저장소의 포인터를 변경하는 것과 같다고 생각하십시오. 지점에서 작업 영역까지의 차이점을 파악하는 데 도움이됩니다.


일반적으로 전체 저장소를 체크 아웃 할 필요가 없습니다. Subversion의 브랜치와 태그는 저렴합니다. 즉, 동일한 파일의 복사본을 만들지 않고 참조 만합니다. 전체 저장소를 체크 아웃했을 때, 누군가 어떤 이유로 든 분기하거나 태그를 지정하면 갑자기 로컬 하드 드라이브에서 사용되는 공간이 증가합니다.

필요한만큼 저장소의 많은 부분을 체크 아웃 할 수 있습니다. 따라서 트렁크의 작업 복사 본인 'trunk'라는 폴더와 브랜치의 작업 복사 본인 또 다른 'version2'를 가질 수 있습니다. 이렇게하면 생성 된 추가 태그가 체크 아웃되지 않습니다.

또는 '프로젝트'라는 하나의 체크 아웃을 가질 수 있으며, 원래 트렁크를 가리키는 경우 브랜치 또는 태그 중 하나로 전환 할 수 있습니다. 이는 원래 체크 아웃을 재사용하는 방법이므로 얻을 필요가 없습니다. 다시 모든 것.

트렁크에서 작업하고 있는데 갑자기 브랜치에 변경 사항을 커밋해야한다는 사실을 깨닫는 것이 매우 유용 할 수 있습니다. 아마도 너무 실험적이기 때문일 것입니다. 이렇게하려면 작업 복사본에서 분기하고 새 분기로 전환 한 다음 커밋하면 변경 사항이 트렁크가 아닌 분기로 이동합니다.


작업 사본은 체크 아웃 한 코드의 사본입니다. 일반적으로 저장소의 전체 구조가 아닌 / Project / trunk / 만 확인합니다. 전환은 작업 복사본의 루트를 변경합니다. SVN으로 작업하는 방식은 수행해야하는 방식이 아닙니다.


작업 복사본은 Subbversion에서 프로젝트를 체크 아웃하는 데 사용한 하드 드라이브의 모든 폴더입니다. 해당 작업 복사본에 대해 다른 프로젝트로 "전환"하여 버전이 지정된 내용이 해당 다른 프로젝트의 내용과 유사하도록 할 수 있습니다.

새 복사본을 확인하지 않고도 트렁크에서 분기로 전환하는 데 유용합니다. 예를 들어 버전이 지정되지 않은 파일 (컴파일 된 개체, 라이브러리, 실행 파일)이 제거되거나 변경되지 않기 때문에 빌드 시간을 절약 할 수 있습니다.

데이브


전체 프로젝트 트리를 확인했습니다. 이것은 아마도 원하는 것이 아닐 것입니다. 트렁크 작업의 경우 프로젝트 루트가 아닌 'trunk'에 뿌리를 둔 사본을 확인하십시오. 마찬가지로 분기 작업의 경우 원하는 분기 만 확인하십시오.

참고 URL : https://stackoverflow.com/questions/581220/what-is-a-working-copy-and-what-does-switching-do-for-me-in-tortoise-svn

반응형