2010-05-26 3 views
1

분기를 작성하고 해당 분기의 파일로 작업하는 경우 '업데이트'할 때 분기의 코드를 트렁크의 코드로 업데이트/병합합니까?Subversion 분기 질문

또한 변경 사항을 브랜치에 위임 한 경우 트렁크를 변경 사항으로 어떻게 업데이트합니까? (변경 사항을 커밋이 있기 때문에 다시 트렁크로 전환?)

상관 코멘트 : 감사

감사합니다,

답변

2

을 지점에서 작업하는 동안 당신이 당신의 작업 폴더를 업데이트 할 때, 당신을 트렁크가 아닌 저장소에서 해당 지점의 새로운 변경 사항으로 업데이트합니다.

다른 사람이 당신과 함께 지사에서 일하지 않는 한, 업데이트는 아무 것도하지 않습니다.

트렁크로 변경 사항을 되돌리려면 (또는 브랜치를 트렁크에 적용하여 변경 사항을 적용하려면) 병합 작업을 사용해야합니다.

Subversion 레드 북에서 chapter 4. Branching and Merging 아래의 분기 및 병합에 대해 자세히 읽을 수 있습니다.

+0

또한 분기를 병합 할 때 상당한 고통을 감당할 준비가되어 있어야합니다. 분기를 전환하거나 병합 할 때 전복은 약간 이상 할 수 있습니다. – Ceilingfish

+0

답장과 링크를 보내 주셔서 감사합니다 : 병합 옵션을 사용하면 분기를 업데이트하고 충돌을 수정하는 것과 똑같은가요? – Theomax

+0

글쎄, "똑 바른 앞으로", 네, 그 작업, 당신은 지점을 완료 한 경우 (또는 변경 사항의 세미 릴리스를 원한다면) 트렁크에 병합하거나 원하는 경우 트렁크에서 분기로 병합하십시오 (예를 들어 특정 버그 수정에 의존하는 경우) 지점에 다른 변경 사항을 적용 할 수 있지만 "직선적"인지 여부는 전적으로 사용자가 경험하는 충돌 횟수에 따라 다릅니다. 작업 사본에 커밋되지 않은 변경 사항이 없도록하고, 되돌리기가 훨씬 쉬워지고 엉망인 경우 다시 시도하십시오. –

1
  1. 아니요. 실제로 트렁크에서 분기를 "업데이트"할 수 없습니다. 지점은 작업 복사본과 다릅니다. 이론적으로 병합 트렁크에서 지점으로 변경이 가능하지만 변경 사항을 트렁크에 다시 적용 할 때 문제가 발생합니다.

  2. 이 작업을 "reintegrate branch"라고합니다. 실제로는 병합의 한 형태입니다. 그 후 지회를 삭제할 수 있습니다.

+0

기본적으로 다른 사용자가 동일한 지점에서 작업하고 변경 한 경우가 아니면 지점을 업데이트 할 수 없습니까? 나는 거의 svn/subversions와 함께 일하는 것을 거의 이해한다고 생각한다. 그러나 트렁크가 브랜치 변경으로 업데이트되는 방법에 대해서는 명확하지 않다. 트렁크에 추가 할 지점이 많으면 어떻게 조정할 수 있습니까? – Theomax

+0

분기를 병합하는 것은 일반 커밋과 같습니다. 많은 사람들이 동일한 파일 세트에서 작업하는 것이 좋습니다.병합하는 동안 변경 집합을 멋지게 표시하고 반자동으로 병합합니다. 병합은 먼저 트렁크에 매핑 된 로컬 복사본에서 수행됩니다. 그런 다음 트렁크의 새 상태를 작성한 후 정기적으로 커밋을 수행합니다. –

2

우선 Subversion의 "branch"== "ordinary directory"에 있습니다. 저장소에 "branches"디렉토리를 만들고 브랜치를 포함한다고 말하지만 Subversion은이 디렉토리를 다른 디렉토리와 구별하지 않습니다. "트렁크", "태그"등에도 동일하게 적용됩니다.

따라서 분기에서 "업데이트"를 수행하면 디렉토리 만 업데이트됩니다.

Lasse가 말한 것처럼 트렁크에 변경 사항을 적용하려면 "병합"작업을 사용해야합니다.