2010-12-17 6 views
3

외부 Subversion 서버없이 TortoiseSVN을 사용하여 LabView 소스 (즉, 끊임없이 변화하는 바이너리 파일 모음)를 관리하고 있습니다.TortoiseSVN : 한 지점의 내용을 다른 지점으로 복사

누구든지 구독하고 매일 업데이트 할 수있는 저장소의 "베타"지점을 갖고 싶습니다. 이 프로젝트는 별도의 분기가있는 일반적인 베타 릴리스 시리즈와는 다르지만이 프로젝트에 적합합니다.

트렁크 분기의 특정 버전의 내용을 베타 분기로 복사하는 가장 쉽고/쉬운 방법은 무엇입니까? 본질적으로 내가하고자하는 일은 beta의 이전 내용을 삭제하고 새로운 내용을 삽입하는 것입니다. 삭제 + 추가 작업은 가능 하겠지만 분명히 차선책입니다. Merge는 Tortoise가 파일 삭제를 포함하여 트렁크의 호의에있는 모든 충돌을 자동으로 해결하지 않으면 옵션이 아닙니다.

업데이트 : 몇 명이 내가 삭제 + 추가를 원하지 않는 이유를 묻습니다. 나는 더 깨끗한 대안을 원한다.

  1. 이 방법을 사용하면 베타 트리의 업데이트 수가 절반으로 줄어 듭니다.
  2. 업데이트가 원적이지 않으므로 누군가가 빈 릴리스를 선택할 수 있습니다.
  3. 나는 시험해 보지 않았지만 beta은 적절한 지점이 아니 었습니다. 매번 "새로운"파일이기 때문에 개정 기록은 여러 개정을 추적합니다. 업데이트 2

:svn는 임의의 명령을 커밋하기 전에 수 있습니다,하지만 난 거북이가 이런 식으로 일을 가져올 수 없습니다. "삭제"를 선택하면, 커밋 될 때까지 스텁 디렉토리가 남았고, 지점을 다시 채울 수있었습니다. 이전 및 새 태그 개정판에 존재할 때 디렉토리 삭제 표시를 해제 할 수있는 방법이 필요합니다.

+0

내가 누락되었거나 삭제하지 않고 원하는 것을 복사합니까? –

+2

아니요, SVN은 트랜잭션입니다. 삭제 및 복사 (추가하지 않음)는 문제가되지 않습니다.그리고 베타는 적절한 지점 (또는 더 나은 태그)이 될 것입니다. –

+0

@Unquiet : 아, 나는 그런 생각조차하지 않았습니다! 답으로 게시하고 그것을 선택하겠습니다. – Potatoswatter

답변

1

SVN은 트랜잭션입니다. 삭제 및 복사 (추가하지 않음)는 문제가되지 않습니다. 그리고 베타 적절한 지점 (또는 더 나은 태그)

+0

좋은 지적! 그러나 Tortoise는 삭제를 커밋 할 때까지 존재하는 잔여 자리 표시 자 디렉토리 때문에 이러한 트랜잭션을 지원하지 않는 것으로 나타났습니다. 그래서 이것을 선택하기 전에 조금 기다릴 것입니다. (또한 태그는 SVN의 브랜치로 구현됩니다.) – Potatoswatter

0

왜 베타/*를 삭제하지 않고 trunk/*를 베타 /로 복사하지 않습니까?

2

병합 내가 거북이가 자동으로 이 파일을 삭제 포함 트렁크의 찬성 모든 갈등을 해결하기 위해 얻을 수 있습니다하지 않는 옵션을 선택하지 않습니다 것입니다.

내가 TortoiseSVN에 대해 알고 있지만하지 않는 당신이 설치하는 경우 command line client 당신은이 beta 지점에 대한 최신 trunk 변경 병합하려면 다음을 할 수있는 다음 --accept theirs-full 옵션은 모든 충돌을 해결

cd c:/path/to/my/working/copy/of/beta/branch 
svn merge file:///c:/path/to/my/repository/trunk --accept theirs-full 
svn commit -m "merged latest trunk changes to beta branch" 

을 트렁크 버전을 원하는대로 사용하십시오.

여기에는 몇 가지 장점이 있습니다. 서브 버전은 representation sharing을 수행하므로 두 분기에 저장된 파일은 저장소에서 추가 공간을 차지하지 않습니다. 또한 사용자가 자신의 beta 작업 복사본을 업데이트 할 때 변경된 파일 만 와이어를 통해 가져와야합니다.

관련 문제