2011-10-12 1 views
1

Subversion을 사용하는 웹 응용 프로그램을 인수했습니다. 코드가 해제되면 저장소에 태그가 생성되고 서버에서 'svn update'명령을 사용하여 릴리스 코드를 최신 버전으로 가져옵니다.서버에서 svn 태그 버전을 삭제하고 저장소에 보관하려면 어떻게합니까?

이 과정은 훌륭하게 진행되었지만 2 년 이상 계속되어 왔으며 현재 웹 서버에는 100 개가 넘는 태그가 있으며 최대 10 개까지 추가 할 수 있습니다. 파티션이 가득 차서 이전 태그를 제거하고 현재 태그가있는 버전 만 유지하려고합니다.

나는 태그가 버전 정보를 포함하고 있으며 서로에 의존한다는 것을 알고 있습니다. 나는 서버에서 오래된 태그를 지우려고했지만, 'svn up'을 실행하자마자 반환한다. 내가하고 싶은 일이 가능한가? 서버에 가장 최신의 태그 만 가질 수 있습니까? 아니면 새로운 배포 프로세스에 대해 생각해야합니까?

+0

당신은 실행'저장소에 up' svn을, 그래서 당신이 말을하는지 생각하는 것은 할 수없는 당신이 안에있는 모든 태그가있는 작업 카피를 가지고 있습니까? –

+0

그래, 그게 어떻게 구현 된 것 같아요. 나는 svn에 관해서는 일종의 멍청이이다. 나는 최신 태그를 체크 아웃하고 그것을 바꿀 것이다. – serialworm

답변

1

왜 태그를 모두 체크 아웃 했습니까? 당신은 당신이 새 태그로 전환 웹 서버를 업데이트 할 때 , svn co http://repo/tags/v1.0 와 현재의 태그를 체크 아웃 svn switch http://repo/tags/v1.1

+0

그가 내 질문에 "예"라고 답한 경우 내 대답은 그랬을 것입니다 :-). 기본 연습 : trunk, branches/branchA, tags/tagA보다 높은 체크 아웃은하지 마십시오. –

0

svn rm http://repo/path/to/tag을 사용하여 태그를 삭제할 수 있습니다. 이렇게하면 HEAD에서 제거되지만 분명히 기록에 남아 있으며 필요할 경우 검색 할 수 있습니다. 그런 다음 svn up은 더 이상 이전 태그를 검색하지 않으며 삭제 된 태그를 작업 복사본에서 제거합니다.

또 다른 가능한 해결책은 tags/CURRENT과 같이 항상 최신 태그를 가리키는 "움직이는 태그"를 갖는 것입니다. 출시 프로세스는 svn cp new-prod-tag http://repo/tags/CURRENT입니다. 그런 다음 서버는 모든 태그 대신 CURRENT 태그를 체크 아웃하고 업데이트하면됩니다. 면책 조항 : 이것은 이 아니며 SVN의 권장 사례이지만 가능한 해결책으로 던지고 싶었습니다.

관련 문제