2012-07-13 2 views
1

나는 구글이 SVN에 대해 말할 수없는 몇 가지 것들을 알고 싶습니다.SVN 분기 및 작업 copys

우리 직장에서는 SVN과 권장되는 트렁크/분기/태그 구조를 사용합니다.

트렁크 폴더를 branches/my branch 폴더로 전환해야합니까, 아니면 branches/branches 폴더에서 작업하고 변경 사항을 적용 할 수 있습니까? 여기서는 실제 폴더에 대해 이야기하고 있으며 올바른 위치를 변경하려고합니다.

우리는 정말 지금까지 지점을 만드는 데 필요한, 그것은 바로 :

감사 싶어하지 않았습니다!

+0

흠. The Book을 확인 했습니까? :) 당신의 질문은 SVNBook에 설명되어 있습니다. 분기 작업의 개념을 설명하는 다음 문서를 확인하는 것이 좋습니다. http://svnbook.red-bean.com/en/1.7/svn.branchmerge.whatis.html – bahrep

+0

분기 개념을 완전히 이해하지만, 작업 사본 자체에 관심이 있습니다. –

답변

0

트렁크에서 분기를 만듭니다. 지사에서 일하면서 필요한만큼 커밋을하십시오. 작업이 끝나면 트렁크의 새 커밋을 지사와 병합하여 충돌을 해결하십시오. 모든 충돌이 해결되고 코드가 테스트 되었으면 분기를 트렁크에 병합 할 수 있습니다.

+0

물리적 인 작업 위치와 관련하여 분기 폴더 (branches/my_branch/files)에서 일반적으로 트렁크처럼 작업 할 수 있습니까? –

+0

귀하의 의견에 대한 답변은 '예'입니다. SVN은 실제로 폴더와 이름을 신경 쓰지 않습니다. 그들은 단지 제안 일 뿐이며 "트렁크"또는 "지점"에서는 특별한 의미가 없습니다. 그들은 정말로 "박스"와 "바이올린"이 될 수 있습니다. – userfuser

0

여기서는 전환하는 것이 좋지 않습니다. 기본적으로이 명령은 프로젝트 재배치에 사용됩니다.

지사가있는 경우 해당 지사는 자신의 삶을 가지게됩니다. 트렁크가 커밋 된 기능면에서 앞서거나 다른 방향으로 올 수 있습니다. 일부 지점은 일부 지점에서 트렁크보다 앞서 있습니다. 앞에서 언급 한 상황에서 switch 명령을 사용하면 엉망이되어 결국에는 깨끗한 체크 아웃을 얻어야합니다.

다른 분기로 작업하는 경우 각 분기를 별도의 트렁크로 볼 수 있다는 점을 이해하고 받아 들여야합니다. 따라서 작업중인 다른 지점에 대해 별도의 정리 체크 아웃을 수행하십시오.

0

최상의 첫 번째 단계는 Subversion의 명명법과 개념을 고유 한 것으로 일치시키는 것입니다. 그렇지 않으면 매듭에 묶여 있다고 생각합니다. 예를 들어 "트렁크를 지점으로 전환"은 의미가 없습니다. 여기에 실제로 의미하는 바가 의심 스럽네요. "트렁크 용 코드가 들어있는 제 작업 복사본을 전환하여 대신 지점에 대한 코드가 포함되어 있습니다.".

저장소에는 트렁크와 생성 된 모든 분기의 현재 상태가 저장됩니다. 일반적으로 이전 릴리스 (예 : 1.0.1 릴리스)에서 버그를 수정하기 위해 돌아가고 싶을 때 분기를 만들려고하는데, 버전 2.0 용 트렁크에서 너무 위험한 내용을 수정하면 더 많은 변경을 가할 수 있습니다 1.0.1.

프로젝트에서 작업 할 때 작업 복사본을 트렁크 또는 분기에서 체크 아웃합니다. 커밋을하면 트렁크 나 체크 아웃 한 지점에서 끝납니다. 1.0.1 분기에서 작업해야하는 경우 다음 두 가지 중에서 선택할 수 있습니다.

  • 이 분기에 대한 새로운 작업 복사본을 확인하십시오. 모든 커밋이 해당 지사로 푸시됩니다.
  • 트렁크에 사용중인 작업 복사본이 이제는 트렁크가 아닌 지사를 따르도록합니다. 모든 커밋은 이제 올바른 분기로 푸시됩니다. 당신은 여러 가지 요인에 따라 달라집니다 가지고이 두 가지 방법 중 하나를

:

  • 당신이 아직 커밋되지 않은 작업 복사본의 변화가 있습니까. 그렇다면 가장 간단한 것은 새로운 작업 복사본을 체크 아웃하는 것입니다.전환하려는 경우 잃어 버릴 위험이 있으므로 패치를 만들어 패치를 만들어 옆에 두십시오.
  • 새 작업 복사본을 만드는 데 비용이 많이 듭니까? 예를 들어 매우 느린 네트워크이거나 거대한 소스 트리이거나 빌드하는 데 많은 시간이 걸릴 수 있습니다. 그렇다면 전환을 선호 할 수도 있습니다.
  • 프로젝트가 하드 코딩 된 경로에 의존합니까? 빌드 스크립트에서 모든 것이 c:\source이라고 가정하면 작업 사본을 하나만 가질 수 있으며 전환을 사용해야합니다.

간단하게하기 위해 분기에 대한 새로운 작업 복사본을 만드는 것이 좋습니다.