2011-11-18 2 views
1

처음에는 표준 레이아웃을 사용하지 않는 Subversion 저장소를 마이그레이션하려고합니다. 나는 그것을 이전하는 방법을 알아낼 수 없다.저장소가 처음에 표준 레이아웃을 사용하지 않는 Subversion에서 Git으로 마이그레이션

예를 들면. SVN 레브 1 년 - 개정 (700) 다음은

[svn]/trunk/projectfile 
[svn]/tags 
[svn]/branches 

로 변경 될 때까지 (700), 레이아웃은

[svn]/projectfile 
[svn]/projectfile2 

내가 자식 svn의 init 명령을 실행할 수 있습니다 어떻게?

는 지금은 아무 지점이없는 것처럼 디렉토리의 모든 것을 보여줄 것이다

git svn init -s <subversion_repository> 

를 사용하는 경우. (명령 아래 같은처럼 사용) 나는 이것을 시도하는 손에서 서브 버전의 repo를 가지고 있지 않기 때문에

svn checkout <subversion_repository_root>/ 

답변

0

,이 물건 중 하나를 수행하기 전에이 감동 할 수있는 아무것도의 백업을하고, 자신의 위험에 진행, 나는 문제가있을 것입니다 발견 이미 Git에 모든 리비전을 가져올 때. this topic

과 같은 새 발행물 작성 저장소를 검토 한 후에 표준 저장소로 내 저장소를 표시하도록 매개 변수 (-s)를 제공하면 모든 경우에 비표준으로 무시됩니다. Rev.1-700을 무시하고 이후 700에서 자동으로 변환됩니다.

지금 당장은 원본 URL에서 전체 가져 오기와 함께 git-svn을 사용하고 문제가 발생하는 경로는 무시한다는 점을 제외하고는 해결책이 없습니다.

2

, 난 단지 또는 작동하지 않을 수도 있습니다를 해결하는 방법을 간략하게 설명 할 수

  • 첫째,
  • 이 망할 놈의 repo 초기화 그것으로 당신의 망할 놈의 repo 및 cd를 개최 디렉토리를 만들 :이 REPO 내부 git svn init svn://path/to/svn/repo
  • git svn fetch --revision 1:699를 실행 (또는 당신이 무엇을 비표준 리터를 사용하는 경우 개정 범위는 모든 일 경우 REPO
  • 의 나머지를 가져
 
    [svn-remote "svn"] 
    url = svn://path/to/svn/repo 
    fetch = trunk:refs/remotes/trunk 
    branches = branches/*:refs/remotes/* 
    tags = tags/*:refs/remotes/tags/* 
  • 실행 git svn fetch --revision 700:HEAD : ayout)
  • 수정 .git/config와는 fetch, branchestags 항목을 수정/추가 할 [svn-remote] 섹션을 수정 이 시점까지 작업 디렉토리에 파일이 없다면 git svn rebase --local을 실행하여 Git이 파일을 생성하는지 확인하십시오.

이론적으로 이것은 전체 히스토리와 모든 브랜치 및 태그가 그대로 유지되는 Git 저장소를 가져와야합니다. 대답은 제공으로 평소처럼

는 등

관련 문제