2010-03-30 3 views
0

svn 기록에서 분기를 제거해야합니다.SVN : 제거 된 등을 복사 한 브랜치를 삭제할 수 있습니까?

'/ 지점/bad_branch'잘못된 복사 소스 경로 : 일반적으로 내가 좋아하는 메시지와 다운 스트림 정보를 처리하는 데 실패
svnadmin dump /path/to/repo |svndumpfilter --drop-empty-revs --renumber-revs exclude /branches/bad_branch 

그러나이 분기 방금 만든되지 않았습니다뿐만 아니라 이동 한 후 제거 사용하고 스크립트를 덤프 것

그래서 나는

  1. 이 역사의 마지막 몇 개정을 유지 문제에 대처하고 웹

    에 아카이브로 현재 저장소 을 넣어 2 가지 방법을 상상
  2. 는 'bad_branch'이 생성 된 버전으로 덤프를 구성하고 패치, 몇 가지 최근의 커밋 때문에 손실의 역사로 변경의 나머지 부분을 적용 할 수 있습니다.

이 문제를 해결할 수있는 더 나은 방법이 있습니까?

+2

이 지점을 영구히 제거해야하는 특별한 이유가 있습니까? –

+0

이 브랜치에는 전체 프로젝트 트리가 포함되어 있으며 git svn을 사용하는 사람들은 많은 시간을 들여 데이터를 가져 와서 처리하는데 많은 시간을 필요로합니다. – dimus

답변

2

숫자 2의 첫 번째 부분이 작동합니다. 그래서 예, 문제가되는 지점이 소개 된 곳까지 덤프를 만들고 그곳에 새 저장소를 만듭니다. 그런 다음 여전히 svnadmin 덤프와 --incremental 옵션을 사용하여 나쁜 분기 개정 사이의 모든 좋은 개정을 덤프하십시오. 새로운 저장소에 이러한 증분 덤프를 적용

svnadmin dump /path/to/repo --incremental -r 1234:2345 

유지 : 여기에 증분 덤프 명령은 다음과 같은 형태가 될 것이다의 예입니다. 이렇게하면 나쁜 분기 생성을하지 않고 저장소를 생성하고, 제안한대로 패치가 파괴 할 수있는 좋은 버전에 대한 모든 기록을 이동하고 커밋하고 보존해야합니다.

나쁜 분기가 갖는 수정 버전 수에 따라, 이것은 많은 작업입니다. 또한 현재로서는 Subversion의 1.6.x 버전 또는 이전 버전에서이를 수행 할 수있는 유일한 방법이기도합니다.

다음은주의 사항입니다. 수정 버전 번호를 참조하는 올바른 버전의 커밋 메시지가있는 경우에는 해제됩니다. 제한된 몇 가지가있는 경우 나쁜 것은 아니지만 많을 경우 수정하는 것이 지루할 수 있습니다.

+0

덕분에 많은 도움을 받았습니다! – dimus

+0

듣고 다행스럽게도 :-) – jgifford25

관련 문제