2009-05-15 4 views
10

저는 잠시 동안 SVN을 사용 해왔고 그 힘과 사용자 경험을 사랑하게되었고, 우리는 모든 사람의 삶을 단순화하기 위해 버그 추적 시스템에 그것을 묶을 수 있습니다. 그래서 우리는 VSN 2005 설정을 SVN으로 마이그레이션하기로 결정했으며 지금은 풀리지 않을 것입니다.누구든지 VSS 2005를 SVN으로 성공적으로 마이그레이션 했습니까?

VSS 2005에서 SVN으로의 마이그레이션을 완료 할 수 있다고 주장하는 도구가 많이 있지만 가장 좋은 것이 무엇인지, 또는 가장 완벽한 것이 무엇인지 알 수 없습니다. 전이. VSS에서 체크 아웃하고 SVN을 확인하는 것보다는 전체 기록을 마이그레이션하는 것이 필요합니다.

강력하고 구성 가능한 것처럼 보이는 Polarion SVN Importer가 발견되었지만, 작동하지 않아도됩니다. VSS의 $ /에서 파일 목록을 가져올 수 없다는 불만이 있습니다. 동일한 명령을 실행하면 수동으로 실행됩니다. 모든 것이 정상적으로 실행되는 것으로 보이므로 알아낼 수 없습니다.

누구든지 VSS 2005에서 소스를 성공적으로 마이그레이션 했습니까? 그렇다면 어떤 도구를 사용 했습니까? 그리고 결과는 무엇입니까? 모든 경고 또는 잡아 당김은 유용하거나 의외이거나 무너 뜨린 것 또는 단순한 허위 진술 된 것뿐만 아니라 알면서도 가장 유용합니다.

+1

나는 전체 VSS 저장소를 버리고 큰 성공으로 SVN의 최신 버전을 확인합니다. –

+0

$ /의 목록 파일에서 너무 일찍 실패하므로 읽기 전용이 아닌 계정을 시도하거나 또 다른 알려진 계정. 예외는 계정 또는 사용 권한 오류와 같습니다. 또는 단일 사용자 계정이 문제의 원인 일 수 있습니다. – Ryan

+0

롤 @Mehrdad - 동의하고 싶습니다; 그러나 역사를 가져올 요구 사항은 내 것이 아니 었습니다. 나는 곧 기존 저장소를 향수와 이동을 위해 보관할 것입니다. 어쩌면 언젠가 우리는 그것을 열어 "아, 우리가 그때 얼마나 귀여웠는지"말할 수있을 것입니다 ... – BenAlabaster

답변

6

코드 플렉스의 VssMigrate에 대한 최신 트렁크 (콘솔 앱) 버전을 사용하여 기록을 다시 정렬하고 VSS 저장소에서 변경 집합을 다시 생성하십시오. 또한 그들이 체크 된 시간을 기준으로 올바르게 수정을 주문한다.

HTTP vssmigrate.codeplex.com/SourceControl/changeset/view/16890

을 도움이 되었기를 바랍니다. $/import에 약간의 조정이 필요할 수 있습니다.

P. 이력은 가져 오기를 기반으로 주석이 정확한지 알아내는 것보다 한 번에 누가 책임을 질지 알기 때문에 유용하다는 것을 알았습니다. 더 오래된 코드에서 버그를 발견 할 때 가지고있는 것보다 훨씬 더 좋습니다.

P.P.S. VssMigrate의 새 버전을 사용하여 개정판을 Subversion 저장소로 다시 가져온 다음 이전 개정판의 마지막 가져 오기 개정 이후에 모든 개정본을 병합 할 수 있습니다. 유일한 단점은 수정 횟수가 크게 줄어들어 모든 사람이 저장소에서 신선한 체크 아웃을 얻어야한다는 것입니다. 기본적으로, 새로운 이주; svnadmin은 이전에 마이그레이션 된 저장소를 rev migrated + 1에서 증분으로 덤프 한 다음 svnadmin을 새로 마이그레이션 된 저장소로로드합니다.

+0

VssMigrate jim0301에 대한 업데이트가 매우 잘되어 있습니다. 당신이 그들에게 커밋하기 전날 같은 기능을 추가했습니다. 업데이트를 제공하려고했을 때, 나는 당신이 방금 그들을 위임했다는 것을 알았습니다. 그리고 너는 내가 한 것보다 훨씬 잘 했어. 업데이트 해 주셔서 감사합니다. 지난 주 내 모든 VSS 저장소를 SVN으로 마이그레이션했으며 아무런 문제가 없었습니다. VSS를 SVN으로 마이그레이션하고자하는 사람은 누구나 codeplex의 소스에서 최신 커밋을 확인해야합니다. (사실 내가 가지고 있었던 유일한 문제는 log4net을 다시 다운로드하고 libs를 다시 부착해야만했는지 확신 할 수 없다는 것입니다.) – devSolo

+0

VSSMigrate가 VSS 6.0d (VSS 2005가 아닌)와 호환되는지 누구든지 알고 있습니까? - 리 –

3

마지막으로 시도한 것은 몇 년 전이었습니다. VSS 파일 형식이 문서화되지 않았기 때문에 완전한 기록을 얻으려면 타사 변환 프로그램이 VSS의 API를 사용하여 각 파일의 각 버전을 가져와야했습니다. 나는 그 전환이 주말에 걸쳐 실행되도록했고, 얼마나 많이 달성했는지 (몇 퍼센트)를 봤고, 완료하는데 수주의 달력 시간이 걸릴 것이라고 계산했다 (우리는 수년간의 역사가 있었다).

우리는 최신 코드의 스냅 샷 만 새로운 버전 제어 시스템으로 옮기고, 기록을 위해 VSS 데이터베이스의 보관 파일을 보관하기로 결정했습니다.

+0

입력 해 주셔서 감사합니다. 몇 년의 역사가 있습니다 만 수천 개의 프로젝트가 없습니다. 고맙게도 한 줌 이니까 그 이후로 앞으로 나아갈 것으로 기대하고 있습니다. – BenAlabaster

2

나는 성공적으로 몇 달 전에 SVN에 VSS 2005 마이그레이션. 나는 CodePlex에있는 "VssMigrate.Tim2"도구를 vssmigrate으로 사용했습니다. 큰 문제없이 잘 작동했습니다. 수정과 타임 스탬프가 예상했던 것처럼 보이지는 않았지만 큰 문제는 아니 었습니다.

편집 : vssmigrate를 사용하면 특정 VSS 경로 (예 : $/GroupA/ProjectB)를 이전하도록 선택할 수 있으므로 개별 마이그레이션 시간이 단축되고 전체 프로세스가 약해집니다. 나는 우리가 단지 약 6 개월의 데이터를 VSS에 가지고 있었지만 프로세스를 너무 오랫동안 발견하지 못했습니다. 주말에 마이그레이션 및 Apache + SVN 설치를 완료했습니다. VSS 저장소의 크기에 따라 대용량 단일 저장소 대신 여러 SVN 저장소를 만들 수 있습니다.

Apache + SVN을 구성하는 것이 너무 재미 있지는 않지만 (시행 착오) 매우 기뻤습니다. 내가 Git 또는 Mercurial을 고려하고 있었지만 그 당시 신뢰성있는 TortoiseXxx 도구 또는 VS SCC 플러그인이 없었습니다. 이제는 Google code이 Mercurial을 지원하고 TortoiseHg이 좋아 보이지만 곧 Mercurial을 사용해 보도록 유혹을받습니다.

+0

예상했던대로하지 못한 것을 자세히 설명해 주시겠습니까? 그것은 좋은 통찰력이 될 것입니다. – BenAlabaster

+0

VSN에서 SVN으로 작성된 개정 번호가 가장 오래된 순서대로 정렬되지 않은 것으로 보입니다. 나는 새 SVN 개정 번호가 선형 및 순차적으로 VSS 버전에서 시간이 흐를 것으로 예상했지만 svn 로그를 다시 보면 패턴을 따르지 않는 것 같습니다. TortoiseSVN에서 datetime으로 정렬하는 것이 간단했기 때문에 큰 문제는 아니 었습니다. 나는 또한 vss2svn을 보았으나 대신 vssmigrate를 결정했다. – Ryan

4

약 1 년 전 Polarion과 vss2svn을 모두 사용해 보았습니다.

우리는 VSS에 년의 코드를 많이 가지고 있었고 모든 구성과 테스트를 통해 결과에 완전히 만족하지 못했다는 것을 알았습니다. 프로세스는 길고 깨지기 쉽기 때문에 결국에는 최신 코드를 깨끗하게 가져 오기만하면됩니다.

지난 한 해 동안 내가 옛날 역사를 찾아 보았지만 그다지 많지는 않았습니다. 신선한 것을 시작하는 또 다른 장점은 새로운 SVN 저장소가 매우 빠릅니다!

+0

동의 - 우리는이 접근법이 '가장 안전하다'는 것을 발견했습니다. 이는 우리가 무슨 일이 일어나는지 등을 제어한다는 것을 의미합니다.또한 SVN 내부에 코드를 저장하는 구조를 수정하여 CI 관련 작업을 수행했습니다. 자동화 된 도구를 사용하면 쉽지 않을 것입니다. –