2010-12-21 3 views
0

내 로컬 컴퓨터에 SVN에있는 저장소가 있습니다. 여러 가지 이유 때문에 내가 작업하고있는 SVN 브랜치가 잠겨 있고 다른 브랜치를 만들지 않아야합니다. 나는 Mercurial을 통해 많은 지역 커밋을하고, 그 변경 사항을 네트워크 드라이브에 복사/푸시하여 매일 밤 백업하도록하고 싶습니다. SVN 브랜치가 다시 열리면 최종 변경 사항을 푸시합니다.네트워크 드라이브에 자동으로 복제본을 복제하는 가장 좋은 전략은 무엇입니까?

이 중 어느 것도 비정상적인 것으로 보입니다. 나는 나의 지역 repo를 만들었고, 그것에 약간의 변경을했고, 그들을 공손하게했다. 그런 다음 원격 드라이브에서 빈 레포를 만들고 변경 내용을 hg push 시도했습니다. 몇 시간 후 33 %만이 완료되었습니다. 총 repo는 약 80MB입니다 (코드 폴더의 파일 6.7GB). 나는 커밋을 할 때마다 하루 종일 기다리고 싶지 않습니다.

나는 hg push을 가방에 넣고 대신 hg clone을 사용하기로 결정했습니다.

PS C:\Dev\Projects\Project1> hg status 
PS C:\Dev\Projects\Project1> hg clone H:\Repo\Projects 
**abort: repository H:\Repo\Projects not found!** 

좋아, 내가 분명히 H의 저장소가 필요합니다 :

그것은이 (사용 PowerShell을) 같이 갔다 리포 \ 프로젝트 \. 그래서 저쪽으로 가서 hg init을 사용하여 빈 저장소를 만듭니다. 그 후에 나는 이것을 시도 :

PS C:\Dev\Projects\Project1> hg clone H:\Repo\Projects 
destination directory: Projects 
**abort: destination 'Projects' is not empty** 

여기에 Mercurial에서 원하는 것은 무엇입니까? 빈 디렉토리? 그럼 아니, 그럼 레포를 찾을 수 없어. 빈 레포? 그러면 목적지가 비어 있지 않다는 것을 알 수 있습니다. hg clone H:\Repo\Projects\TheNewFolder과 같은 아주 새로운 폴더? 아니요, 그럼 메시지를 찾을 수 없습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 "하루 종일 걸립니다"또는 "전혀 작동하지 않습니다"사이에 붙어있는 것처럼 보입니다.

답변

2

경우 cd ..hg clone Project1 H:\Repo\Projects 뒤에 명령 클론에서 Project1이에 밝히는. H:\Repo\Projects을 현재 디렉토리에 복제하려고했습니다.

클론은 푸시 복제보다 빠르지 않습니다. 단지 hg init ; hg pull입니다.

(80GB를 의미하지 않는 한) 80MB 용량의 레포가 새로운 빈 레포로 밀거나 당기기 위해선 깜박 거리는 데는 이상이 없습니다. 그것이 80GB 이었다면 그것은 단지 한 번이고 이후 push/pull은 새로운 changeset를 보낼 것입니다.

+0

당신이 옳다고 생각됩니다. 그 점이 내가 필요한 모든 것이 었어. 여기에있는 오류 메시지는 크게 도움이되지 않았습니다. 재 : 천천히 : 그것은 우리의 네트워크가 될 수 있습니다. 레포는 80MB입니다. 나는 그것을 bitbucket에 밀어 넣을 수 있고 새로운 dir을 더 빨리 내릴 수 있다고 생각한다. – jcollum

+0

글쎄, 그 오류 메시지를 막기 위해 "복사 b"와 "복사 b a"의 차이가 있었는데, a가 파일이고 b가 디렉토리 일 때 어떤 시스템에서나 매우 다른 오류 메시지를 줄 것입니다. –

+0

오류로 인해 실제로 두 개의 인수가 필요하다는 오류가 표시되지 않았습니다. 하나의 arg 만 가지고 있다면 현재의 repo를 원격지로 복사하는 것이 안전하다고 생각했습니다. 내가 쓰는 것처럼 나는 논리가 두 가지 방향으로 갈 수있는 방법을 볼 수있다. 나는 방금 "당신은 2 개의 args를 가져야한다"고 말하면 그것을 선호 할 것이라고 생각한다. – jcollum

0

정말로 질문을 다시 입력해야하지만 파일을 추가하고 커밋해야 할 필요가 있다고 생각하면 convert extension도 확인하십시오.

hg add -a 
hg commit -m 'initial' 

편집 이미로 복제하고있는 디렉토리 프로젝트라는 디렉토리를 가지고, 그것을 제거하거나 이름을 바꿉니다. 당신이 C:\Dev\Projects\Project1에있어 당신이 H:\Repo\Projects에 복제 할

+0

소스 저장소에있는 파일을 의미합니까? – jcollum

+0

존재하지 않았고 오류가있는 디렉토리에 hg 복제본을 시도했습니다. – jcollum

+0

** 중단 : 대상 '프로젝트'가 비어 있지 않습니다. ** << 복제 할 때마다 ** 프로젝트 **라는 디렉토리가 있습니다. – OneOfOne

관련 문제