내 SVN 저장소에서 수정본을 삭제하려고합니다 싶지 않습니다. 실제로 리포지토리 이전에 헤드

내 코드 저장소의 최신 개정판이 손상되어 내 앱이 불안정 해졌습니다. 이전 버전으로 되돌리고 싶습니다.

그러나 작업 사본에 단순히 ‘복귀’를 사용하고 싶지 않습니다. 실제로 리포지토리 이전에 헤드 리비전과 여러 리비전을 삭제하여 리포지토리를 이전 리비전으로 ‘복귀’하여 헤드 리비전이됩니다. 내가 어떻게 할 것인지 아는 사람 있습니까?



답변

이 링크가 도움이 될 수 있습니다.

http://www.sampablokuper.com/2009/03/27/svn-revert-to-revision/

인용문:

  1. 작업 복사본 전체를 롤백한다고 가정하면 작업 복사본 내 최상위 디렉토리로 변경하십시오.

  2. svn revert작업 복사본의 파일을 마지막 커밋 / 체크 아웃 상태로 되돌리려면 실행 합니다.

  3. svn status -v작업 복사본이 현재 어떤 개정 번호에 해당하는지 확인 하려면 실행 합니다 (목록에서 가장 높은 개정 번호 임 svn status -v).

  4. 실행 svn merge -rXX:YY어디 XX이전 단계에서 얻을 수이고 YY당신이 되돌리려 개정의 수입니다.

  5. 끝난! 이에 대한 가능한 예외는 수정본 YY이 원래 만들어 졌을 때 존재하지 않았던 작업 복사본의 파일 이 여전히 존재한다는 것입니다. 기본적으로 svn은 항목을 제거하지 않기 때문입니다. 당신이 그들을 제거하려면, 그들 svn del [filename]각각에 실행 합니다.

  6. 잘 했어! 이제 모든 중간 편집이 수행되지 않은 것처럼 작업 복사본으로 재생하십시오. 노력할 준비가되면 평소처럼 svn commit을 사용하십시오!


답변

이것은 나를 위해 일했습니다. HEAD로 1234 개정판이 있고 마지막 3 개의 커밋을 되돌리려면 다음을 수행하십시오.

svnadmin create newrepo
svnadmin dump -r 0:1231 repo | svnadmin load newrepo
mv repo oldrepo
mv newrepo repo

답변

나는 이것이 오래된 질문이라는 것을 알고 있지만 Windows / TortoiseSVN 으로이 작업을 수행하는 방법을 찾았습니다.

의견에서 제안한 것처럼 개정을 “삭제”할 수 없지만 되돌릴 수있는 개정과 동일한 최신 개정을 작성하면됩니다.

  1. 개정을 되돌리려는 디렉토리에 대한 저장소의 HEAD를 체크 아웃하십시오.
  2. 되돌리려는 최상위 디렉토리 (예 : “Trunk”)에 대해 TortoiseSVN에 “로그 표시”보기를로드하십시오.
  3. 제거 할 개정을 마우스 오른쪽 단추로 클릭하십시오. 참고 : 이것은 되돌리고 자하는 개정이 아니라 제거하려는 개정입니다.
  4. “이 개정판에서 변경 사항 되돌리기”를 선택하십시오.
  5. 프롬프트에서 “예”를 클릭하십시오.
  6. 정상적으로 체크 아웃을 업데이트하지만 “HEAD”로 업데이트하십시오.
  7. 다시 커밋하십시오.

그런 다음 체크 아웃 한 다른 모든 사람에게 가서 업데이트하도록하고 새 파일을 제거해야합니다.

또한 모든 사람이 해당 개정판이 무엇인지 알고 잠재적으로 설명을 업데이트해야합니다.


답변

이 목적으로 덤프 /로드를 사용할 수 있습니다.

svnsync를 사용하여 일부 버전으로 백업 할 수도 있습니다.

큰 저장소가 있으면 시간이 걸립니다.


답변

나를 위해 (VisualSVN, 30-HEAD) 다음과 같이 작동합니다.

  델 C : \ Repositories \ MyRepo \ revs \ 0 \ 30
  델 C : \ Repositories \ MyRepo \ revs \ 0 \ 29
  델 C : \ Repositories \ MyRepo \ revs \ 0 \ 28
  델 C : \ Repositories \ MyRepo \ revprops \ 0 \ 30
  델 C : \ Repositories \ MyRepo \ revprops \ 0 \ 29
  델 C : \ Repositories \ MyRepo \ revprops \ 0 \ 28
  에코 27> C : \ Repositories \ MyRepo \ db \ current
  

답변

터미널로 이동하여 svn 담당자로 이동하십시오.

svn update -r “복귀하려는 개정 번호”