문제

버전 제어를 위해 SVN에 보관 된 소프트웨어로 작업합니다. GIT (GIT-SVN)를 사용하고 싶지만 소프트웨어는 사용하기 전에 많은 설정과 구성이 필요합니다. SVN을 통해 모든 코드를 확인하는 것을 포함하여 모든 설정을 처리하는 도구가 있습니다.

GIT-SVN에 대한 모든 문서 (나는 찾을 수있었습니다)는 GIT-SVN을 사용하여 새로운 체크 아웃이 필요합니다.

기존 SVN 체크 아웃을 변환하여 GIT-SVN을 사용할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

당신은 다음과 같은 일을 할 수 있습니다 :

  1. GIT-SVN을 사용하여 SVN 트리의 전체 클론을 임시 디렉토리로 수행하십시오. 기존 체크 아웃과 동일한 개정을 사용하십시오.
  2. ".git"폴더를 GIT-SVN 체크 아웃의 최상위 레벨에서 SVN 체크 아웃의 최상위 레벨로 이동하십시오.
  3. 그런 다음 ".SVN"디렉토리를 무시하도록 GIT에게 알리거나 모두 삭제할 수 있습니다.
  4. GIT-SVN 체크 아웃을 삭제하십시오.
  5. 이제 Git 및 Git-Svn으로 기존 파일을 조작 할 수 있습니다.
  6. "git 상태"를 수행하고 변화가 없다고 말하기를 바랍니다.

다른 팁

아니요. Git-SVN 클론은 전체 저장소를 GIT로 변환합니다. SVN 체크 아웃에는 전체 저장소가 없으므로 복제 할 수 없습니다. 이것은 SVN 또는 CVS에서 분산 시스템 (예 : GIT)으로 전환하는 주요 장점입니다.

나는 당신이 아마도 역사를 지키고 싶다고 생각합니다. 그러나 귀하 (또는이 페이지에서 우연히 발견되는 다른 사람)가 기록이 필요하지 않은 경우 여기에 설명 된대로 "내보내기"기능을 사용할 수 있습니다. https://stackoverflow.com/a/419475/2437521.

이를 수행하는 또 다른 방법은 원래의 전복 작업 사본을 수정하지 않고 복사 할 필요가없는 패치를 사용하는 것입니다.

  1. git-svn을 사용하여 GIT 저장소가 될 새 디렉토리를 사용하여 전복 트리의 전체 클론을 수행하십시오. 기존 체크 아웃과 동일한 개정을 사용하십시오. 당신이 사용할 수있는 git reset --hard :/r<revision> 복제 후 동일한 개정이되도록 강요하기 위해 <revision> Subversion Working Copy가 업데이트 된 개정입니다 (이 참조를 참조하십시오. svn info 거기).
  2. cd 당신의 파괴 작업 사본에.
  3. 사용 svn status 모든 새 파일이 표시되어 있는지 확인합니다 A (또는 사용 svn add 추가하려면), 모든 삭제 된 파일이 표시됩니다. D (또는 사용 svn rm 삭제하려면).
  4. 운영 svn diff >patch.diff 패치 파일을 만듭니다.
  5. 복사 patch.diff 이전에 만든 git 저장소의 상단에.
  6. cd 이전에 만든 git 저장소의 상단에.
  7. 운영 git apply -p0 patch.diff git 저장소의 작업 트리에 패치를 적용합니다.

이제 사용 변경 사항을 살펴볼 수 있습니다 git status, 그리고 git add/git commit 로컬 저장소에 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top