2008-08-07 12 views
12

우리는 동일한 닫힌 (어리석은 gov) 네트워크에 두 명의 개발자가 있고, 다른 개발자는 길을 따라 몇 분 운전하고, 네 번째 개발자는 전국에 걸쳐 중간에 있습니다. 전자 메일, FTP 및 제거 미디어는 동일한 네트워크에 있지 않은 사람들을위한 가능한 모든 전송 방법입니다.이 설정에 좋은 Mercurial 사용 패턴은 무엇입니까?

저는 폐쇄 된 두 네트워크 개발자 중 한 명으로, "마스터"위치로 생각합니다.

그룹에 가장 적합한 Mercurial 설정/패턴은 무엇입니까? 원격 개발자와의 변경 사항을 전송하는 가장 좋은 방법은 무엇입니까? 제가 책임지고있을 때, 저는 제가 개발할 수있는 다른 지역 레포와 적어도 하나의 마스터 레포를 유지해야 할 것이라고 생각했습니다. 서로 다른 사람은 주인의 복제품 만 있으면됩니다. 이게 옳은 거니? 이 또한 나에게 병합에 대한 책임을지게하는 것 같아요?

여러분도 알다시피, 저는 여전히 분산 버전 제어에 대한 저의 고민을 해결하려고합니다. 연결 상태와 관련하여이 작업을 수행 할 다른 방법이 없다고 생각합니다.

답변

1

네트워크 외부 사용자는 patches으로 만들거나 email을 사용하여 메인 레포 또는 자신과 같은 사람에게 업데이트를 보낼 수 있습니다. 다른 내부 사람들은 자신과 같은 로컬 복사본을 가질 수 있으며 병합을 수행 할 수 있습니다. 그러나 네트워크 패치가 부족한 경우 한 사람이이를 처리하면 아무도 혼란스럽지 않을 수 있습니다.하지만 그렇게하는 것이 좋습니다. 너 자신을 생각해 보라.

다른 말로하면, 패치를 작성하면 전자 메일을 보내거나 원격 개발자에게 시스템을 패치 할 수있는 플래시 드라이브를 가져옵니다. 당신은 팀원에게 좋은 의사 소통이 필요할 것입니다, 나는 당신의 구두에 있지 않다는 것에 대해 감사하고 있습니다.

그건 내 유일한 제안 - 잘, 그들에게 VPN 연결을 잡아! 나는 그것이 어떻게 진행되는지, 어떤 계획이 매주 그루브 등으로 안정화되는지 듣고 싶다.

0

맞음. 아무것도 폐쇄 된 네트워크에 그것을 만드는 유일한 방법은 플래시 드라이브를 통해이다.

3

패치는 간단하고 다양한 솔루션입니다.

변경 사항 (특히 바이너리 변경 및 병합) 변경을 위해 Mercurial은 바이너리 번들을 제공합니다. 번들은 기본적으로 hg push을 수행 할 때 네트워크에서 전송되는 바이너리 파일이지만 여기서는 파일로 캡처됩니다.

어떻게 든 클론을 얻었습니다 (플래시 드라이브, DVD 등). 전화 번호는 upstream입니다. 나는 두 번째 클론을 만들고, devel라고 부른다. 나는 내 모든 개발을 devel에서하고 커밋, 병합 등을 많이한다. Mercurial이 배포 된 이후로 나는이 모든 것을 오프라인으로 할 수있다.

내가 모두를 포함하여 변경 집합을 포함하는 바이너리 압축 파일을 얻을 수

% hg bundle changes.hg ../upstream 

을 사용할 수 있습니다, 내가 보내

% hg outgoing ../upstream 

내가 뭔가를

을 변경 집합이 upstream에서 누락 된 확인하려면 그들의 메타 데이터. 그런 다음이 파일을 CD로 구워 메일로 보낼 수 있습니다 ...

번들의 수신자는

% hg incoming changes.hg 

을 풀고 자신의 저장소에 변경 집합을 추가 할 수있는 변경 집합 목록과

% hg pull changes.hg 

을보고 할 수 있습니다. 그러면 그는 병합해야 할 가능성이 가장 높습니다. HTTP 또는 SSH를 통해 저장소에서 직접 가져온 것과 같습니다.

참고 : upstream 저장소는 업스트림 저장소에서 이미 발견 된 변경 집합을 기억하는 편리한 방법으로 만 사용됩니다. 또한 변경 세트 ID를 적어두고 번들링하여 기본 (공통) 변경 집합을 지정하는 경우 hg bundle --base을 사용할 수 있습니다. hg help bundle 또는 look in the wiki을 참조하십시오.