하나의 Subversion 저장소에서 다른 Subversion 저장소로 여러 폴더 이동

하나의 Subversion 저장소에서 다른 Subversion 저장소로 여러 폴더 이동

하나의 Subversion 저장소에서 다른 Subversion 저장소로 여러 폴더 이동

Subversion 1.4.2가 설치된 centOS 6.4 서버가 있습니다. 내 서버에는 두 개의 Subversion 저장소가 있습니다.

나는 지난 2년 4개월 동안 "repoOLD"를 사용해 왔으며 이제 "repoNEW"라는 또 다른 저장소를 만들었습니다.

'repoOLD'에는 100개의 폴더(프로젝트)가 포함되어 있습니다.

"repoNEW"가 방금 생성되었으며 "repoOLD"에서 "repoNEW"로 일부 항목을 복사해야 합니다.

이제 문제는 내 "repoOLD"에서 "repoNEW"로 여러 폴더(프로젝트)를 전송하는 방법입니다.

인터넷 검색을 시도했지만 하나의 Subversion 저장소에서 다른 저장소로 여러 폴더를 이동하는 방법에 대한 튜토리얼을 찾을 수 없습니다

답변1

다른 사람이 Subversion을 직접 사용하여 더 나은 답변을 게시할 수도 있지만 Python의 기능이 훌륭하기 git때문에 Subversion으로 변환한 다음 다시 Subversion으로 변환하는 접근 방식을 제안하겠습니다 .gitfilter-branch

이전 svn 저장소를 로컬 git 저장소에 복제합니다.

git svn clone <url-for-repoOLD>

이제 로컬 git복제본이 디렉토리에 저장되어 있다고 가정합니다.repoOLD

git clone에서 원하지 않는 모든 것을 필터링하세요.

이제 더 이상 필요하지 않은 새 저장소의 모든 항목을 삭제하십시오.

cd repoOLD
git filter-branch --force --index-filter \
    'git rm -r --cached --ignore-unmatch dirA dirB dirC dirD' \
    --prune-empty --tag-name-filter cat -- --all

... dirA dirB dirC dirD더 이상 필요하지 않은 디렉토리는 모두 어디에 있습니까? 삭제하려는 항목을 모두 나열해야 합니다.

ls원하는 내용이 포함되어 있는지 확인하려면 등 을 사용하여 git log이 저장소를 확인하세요 .

새 svn 저장소를 로컬 git 저장소에 복제하세요.

cd ..  # (get out of repoOLD if you are still in there)
git svn clone <url-for-repoNEW>

이제 로컬 git복제본이 디렉토리에 저장되어 있다고 가정합니다.repoNEW

또한 repoNEW에 아무것도 커밋하지 않았거나 repoOLD에서 아무것도 가져오지 않았기 때문에 이 시점에서는 repoNEW가 완전히 비어 있다고 가정하겠습니다.

gitrepoOLD 클론에서 모든 것을 가져옵니다.

cd repoNEW
git remote add repoOLD ../repoOLD
git fetch repoOLD
git merge repoOLD/master

이제 이러한 변경 사항을 repoNEW svn 서버로 다시 푸시하세요.

git svn dcommit

관련 정보