2016-09-16 2 views
0

특정 태그를 SVN에서 Git으로 마이그레이션하려고합니다.단일 SVN 태그를 Git으로 마이그레이션

내 로컬에 태그를 복제했습니다.

git svn clone --authors-file=authors.txt svn://path/tags/1.0.0 1.0.0 

란 내가 망할 놈의 태그를 만들어야합니다 원격 자식에 태그를 밀어 싶습니다

git fetch 

이제 원격의 repo와 동기화 가져옵니다. 나는 이것을 위해 아래 명령을 실행했다.

git push origin --tags 

"모두 최신"이라고 표시되어 있습니다. 그러나 이 아니며은 (는) Git에 태그를 추가했습니다.

답변

0

물론 태그가 추가되지 않았습니다. 이 태그를 1.0.0이라는 새로운 저장소의 마스터로 복제했습니다. Git 태그가 푸시 된 상태에서 결과를 원하면 먼저 1.0.0으로 태그를 지정해야합니다.

하지만 그 외에도 git-svn이 아니며입니다. 리포지토리 또는 저장소 부분의 일회성 변환에 적합한 도구입니다. Git을 기존 SVN 서버의 프론트 엔드로 사용하려는 경우 훌륭한 도구이지만 일회성 변환의 경우 이 아닌git-svn을 사용해야하지만 svn2git은이 사용 사례에 훨씬 적합합니다.

svn2git이라는 pleny 도구가 있는데, 아마도 가장 좋은 도구는 https://github.com/svn-all-fast-export/svn2git의 KDE입니다. 그 svn2git 도구를 사용하는 것이 좋습니다. 내가 사용할 수있는 최선의 방법이며, 규칙 파일을 통해 할 수있는 일에 매우 유연합니다.

svneverever에서 http://blog.hartwork.org/?p=763까지의 기록은 Git으로 마이그레이션 할 때 SVN 저장소의 기록을 조사하는 훌륭한 도구입니다.

하나의 태그 만 힘내 (Git)로만 변환하는 경우에도 규칙 파일을 사용하여 도구를 쉽게 구성 할 수 있습니다. 하나의 SVN repo를 하나의 실행으로 여러 Git repos로 분할하거나 하나의 SVN 루트에서 여러 SVN repos를 하나의 Git repo 또는 여러 Git repos에 결합 할 수도 있습니다.

+0

한번의 변환을 위해서는 git-svn을 사용하는 것이 좋습니다. Pro Git 책에서도 권장합니다 : https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to -Git # Subversion – 1615903

+0

@ 1615903 경험이 완전히 다른 이야기를하면 책이 말하는 것에 대해별로 신경 쓰지 않습니다. 'git-svn'은 시작하기가 더 쉽지만 더 나쁜 결과가 나옵니다. 역사가'svn2git' (올바른 것이 사용되면)에 의해 더 잘 재구성됩니다. 태그는 실제 태그이며 Git에서 분기하지 않습니다 if 당신은 SVN에서 레이아웃을 변경했다면'svn2git'으로 쉽게 구성 할 수 있습니다.'git-svn'을 사용하면 결국 역사가 느슨해집니다.'svn2git'을 사용하면 하나의 SVN 저장소를 여러 개의 Git 저장소로 쉽게 분리하거나 여러 SVN 저장소를 결합 할 수 있습니다. 하나의 자식에 같은 SVN 루트 ... – Vampire

+0

... 저장소 쉽게. 또 다른 이유는,'git-svn' 태그는 여분의 빈 커밋을 포함하고 있기 때문에 브랜치의 일부가 아니기 때문에 명령에'--tags'를 줄 때까지 정상적인 패치를 얻을 수 없습니다 가져온 가지를 가리키는 태그도 가져옵니다. 적당한'svn2git' 태그는 그들이 속한 곳입니다. 'git-svn'보다 올바른'svn2git'을 사용하면 변환 속도가 훨씬 빨라집니다 ...'git-svn'이 나 빠지고 KDE'svn2git'가 우월한 데는 여러 가지 이유가 있습니다. – Vampire

관련 문제