2009-10-15 2 views
23

'hg convert'명령을 사용하여 SVN 저장소를 hg로 이동하려고 시도했으며 작동하는 것처럼 보입니다 (잠시 시간이 걸리며 모든 커밋 메시지가 인쇄 될 때마다 인쇄됩니다), 결국 결과 Mercurial 디렉토리는 비어 있습니다. .hg 숨겨진 하위 디렉토리가 있고 약 200MB이므로 아무 일도 없었지만 파일이 하나도 없습니다.서브 버전 -> 수은 전환 후 저장소가 비어 있음

의견이 있으십니까?

내가 관여 된 것으로 생각할 수있는 유일한 방법은 대신 최상위 트렁크, brankes, 태그 디렉토리를 가지고, 우리는 많은 프로젝트를 가지고있다, 자신의 줄기, 가지, 태그와 각 :


svn-repository/ 
    Project1/ 
     trunk/ 
     branches/ 
     tags/ 
    Project2/ 
     trunk/ 
     branches/ 
     tags/ 

등 ...

문제의 원인 일 수 있습니까? 제 이해는 SVN이 저장소를 어떻게 구성하는지 실제로 신경 쓰지는 않지만 Mercurial을 사용합니까?

+0

ㅎ, 내가 거기에 있었기 때문에 질문을 upvoted! – MattGWagner

답변

29

작업 복사본을 얻으려면 hg update을 실행해야합니다.

(작업 복사본이없는 이러한 수은 리포지토리는 서브 버전 서버와 마찬가지로 리비전을 푸시하거나 푸시하는 순수 통신 포인트로 사용할 수 있습니다.이 경우 hg convert로 생성되었지만 hg clone --noupdate 또는 hg update null와 저장소. 작업 복사본 파일을 생략는 공간을 절약 할 수 있습니다.)

을 또한, 나는 당신이 각 프로젝트 별도로 변환 추천 할 것입니다. "project1"의 URL을 지정하면 hg converttrunk, branchestags 개의 하위 폴더를 자동으로 감지하여 올바른 작업을 수행합니다.

머큐리얼에서는 브랜치가 트렁크에서 svn 복사 된 폴더가 아닌 일류 개념입니다. 가지는 svn과 같이 사용자가 볼 수있는 위치에 살지 않습니다. 하나의 수은 저장소에 여러 개의 프로젝트 (각각 자체 지사가 있음)가있는 것은 사실이 아닙니다.

+0

물론, 나는 그것을 시도하지 않았다는 것을 믿을 수 없다. 나는 여전히 push/pull과 commit/update의 차이에 익숙해있다. 후속 조치를 요청할 수있는 이유는 무엇입니까? 프로젝트를 다른 저장소로 나누는 것이 좋습니다. 여러 프로젝트가 모듈화되어 서로 다른 조합으로 함께 사용되기 때문에 이들이 함께 그룹화되는 이유가 있습니다. 그러나 여전히 여러 프로젝트를 분기 할 수 있기를 원합니다. Mercurial이 불평 할이 조직 구조입니까? –

+0

@hvjackson : 전복에서 폴더 간의 변경 사항을 다른 경로이지만 공통적 인 조상으로 병합 할 수 있습니다. Mercurial은 매우 다르게 작동합니다 : 병합은 두 개의 상위 버전이있는 개정입니다. 당신이 일을하는 전복 방법을 복제한다면 당신은 제대로 합병 할 수 없을 것입니다. 혼란 스러울 수 있습니다. hg 튜토리얼을 통해 작업하는 것이 좋습니다. http://mercurial.selenic.com/wiki/Tutorial –

+0

또는 http://mercurial.selenic.com/wiki/Merge를 확인하십시오. –