2009-02-24 3 views
51

나는 소프트웨어 앱을 가지고 있으며 중요한 이정표 2.0 버전을 쳤다.Tortoise SVN에서 작업 복사본은 무엇이며 "전환"은 무엇을합니까?

나는이 버전의 이름을 "Version-2.0"으로 지정하기로 결정했다. 또한 무엇이든 수정하고 트렁크에 다시 병합해야 할 경우를 대비하여 "Version-2.0"브랜치를 만들었습니다.

Tortoise SVN 도움말 파일을 통해 읽은 후 "작업 복사본"을 새로 생성 된 분기로 전환 할 수 있음을 알립니다.

이것은 무엇을 의미합니까?

는 현재, 내가 가진 :

/프로젝트/트렁크/
/프로젝트/태그/
/프로젝트/분기/

모든 체크 아웃. 그렇다면 "스위칭"의 요지는 무엇입니까? 현재, 나는/trunk 폴더로 가서 내 일을한다. 그리고 태그와 브랜치를 만들 때 업데이트를 한 후에/Tags/and/Branches/폴더에 폴더가 생성되었습니다.

내가 원하는 경우 왜 /Branches/Experiemental-v3.0/에 가서 내 작업을하지 않습니까?

누군가가 "작업 복사"및 "전환"개념을 나에게 설명 할 수 있습니까? 내가 뭘 놓치고 있니? 사람들은 일반적으로 전체 저장소를 체크 아웃하지 않았습니까?

답변

41

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

svn 스위치를 사용하여 동일한 상위 항목의 분기 (또는 올바르게 복사)를 전환 할 수 있습니다. 이것은 기본적으로 현재 작업 복사본과 내가 전환 할 지점 간의 차이점을 말할 것입니다. 그런 다음 전환하는 지점의 개정판으로 현재 작업 사본에 대한 갱신을 수행합니다.

작업 복사본이 계산대이므로 얻을 수 있습니다.

전환은 작업 복사본이 커밋하는 분기를 변경하는 것입니다. 커밋이 수행 될 저장소에서 포인터를 변경하는 것과 같습니다. 지사와 작업 영역의 차이점을 얻으십시오.

+4

그러나 이것은 질문에 대답하지 않습니다. King은 사람들이 일반적으로 모든 폴더를 체크 아웃하지 않았습니까? 내가 /Branches/Experiemental-v3.0/ 폴더에 들어가서 변경 사항을 커밋시 바로이 폴더에 커밋하지 않을 경우? 누가 작업 카피와 "디렉토리로 전환"을 염려합니다. 당신이 말하는 것은 사용자가 한 번에 하나의 사본 만 체크 아웃했다는 것을 의미합니다. – shabby

+0

모든 폴더를 체크 아웃하는 것은 svn repo의 복제본을 가지고 있다는 것을 의미하지 않습니다. 내가 지점에서 체크 아웃했다 폴더를 가질 수 있지만 여기에 변경 사항을 저지르고, 나는 svn 스위치를 만들었다면 다른 지점에 커밋을 제출할 수 있습니다. – mtk

+5

나는 당신이 일하는 방식을 두려워하지 말고 모든 지사를 로컬 컴퓨터에서 체크 아웃 할 것을 제안합니다. 이것이 우리가 약 5 년 이상 일했던 방식이며 인생을 더 단순하게 만듭니다. 스위치를 사용하고 하나의 체크 아웃 된 지점에서 작업하는 것이 이점이 있습니다. 그러나 나는 그것이 좋지 않고, 많은 것을 체크 아웃하고, 그것이 우리에게 잘 작동한다는 것을 기여하고 싶었습니다. –

1

작업 사본은 하위 버전에서 프로젝트를 체크 아웃하는 데 사용한 하드 드라이브의 폴더입니다. 버전이있는 내용이 다른 프로젝트의 내용과 비슷하게되도록 작업 복사본의 다른 프로젝트로 "전환"할 수 있습니다.

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

데이브

3

작업 복사본 당신이 체크 아웃 한 것으로, 코드의 복사본입니다. 일반적으로 저장소의 전체 구조가 아닌 단지/Project/trunk /를 체크 아웃합니다. 전환은 작업 카피의 루트를 변경합니다. SVN으로 작업하는 방법은 어떻게해야하는지가 아닙니다.

1

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

17

전체 저장소를 체크 아웃하는 것이 일반적으로 불필요합니다. Subversion의 브랜치와 태그는 값이 싼 것으로 의도되어 있습니다. 즉, 동일한 파일의 복사본을 만들지 않고 그냥 참조하는 것입니다. 전체 리포지토리를 체크 아웃 할 때 어떤 이유로 든 분기하거나 태그를하면 로컬 하드 드라이브에 사용 된 공간이 갑자기 늘어납니다.

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

또는 'project'라는 체크 아웃을 하나 가질 수 있으며 원래 트렁크를 가리키는 경우 분기 또는 태그 중 하나로 전환 할 수 있습니다. 원래 체크 아웃을 다시 사용하여 ' 모든 것을 다시해야 해.

트렁크에서 작업하는 것이 매우 유용 할 수 있으며 변경 사항을 지점에 적용해야한다는 것을 깨닫게됩니다. 이렇게하려면 작업 복사본에서 분기 한 다음 새 분기로 전환 한 후 커밋하면 변경 내용이 트렁크가 아닌 분기로 이동합니다.

+0

IMHO 이것은 허용 된 대답이어야합니다. 이것은 실제로 받아 들여지는 것보다 훨씬 낫습니다. 이것은 실제로이 질문을 다루기 때문입니다. –

관련 문제