2014-01-16 6 views
1

저는 Mercurial을 통한 소스 제어를보다 정확하게 구현하는 과정에 있으며 상황에 처했습니다. 내 환경은 서버와 약 4 대의 개발 컴퓨터가있는 두 명의 프로그래머입니다. 대부분의 코드 작성이 이루어지는 두 개의 Office 데스크톱이 있습니다. 그런 다음 테스트 및 디버깅을 위해 랩에 랩톱 2 대가 사용되었습니다.
이전에는 네트워크를 통해 방금 작업했습니다. 코드 프로젝트가 서버에 있었고 사무실과 랩톱 랩톱 모두 파일을 열고을 열었습니다. 그래, 나는 그것이 아이디어의 최고가 아니었지만, 우리는 그것을 일하게 만들었다. 로컬 리포지토리가있는 DVCS의 더 정확한 모델로 이동하면 문제가 생깁니다. 실제 칩을 프로그래밍 할 수 있도록 랩에 입력 한 사무실에서 코드 업데이트를 얻으려면 어떻게해야합니까? 나는이 수준의 변화 (개발 당일 동안 10, 20, 50, 심지어 100 개의 작은 변화)가 서버를 통과 할 필요가 없다고 느낍니다. 개인적 견해는 서버에 대한 커밋은 내가 갖고있는 것을 다른 사람들과 공유 할 준비가되었을 때 예약되어야한다는 것입니다. 프로젝트에 반드시 들어가는 것은 아니며, 내가있는 곳을 공유 할 준비가되었습니다.두 개의 "클라이언트"리포지토리간에 간단하게 푸시/풀을 사용하여 변경 사항을 공유하십시오.

서버에 push을 입력하고 노트북에 pull을 입력해야합니까?
내 사무실과 실험실 랩톱 repos 사이에서 그냥 push/pull 앞뒤로 갈 수 있습니까? 어떻게 그 연결을 설정하겠습니까? "서버"는 DVCS 환경에서 CVCS 에뮬레이션이 있다는 가정하에

+0

"서버"란 무엇입니까? 그러한 용어는 DVCS 세계에서 존재하지 않는다 (또는 너무 광범위하게 의미가있다)? –

+0

@Lazy Badger - 내 컴퓨터의 드라이브 문자에 매핑 된 파일 서버 일뿐입니다. –

답변

1

(즉 푸시 대상은 | 풀 독점적으로 모든 데이터 교환을위한 소스)와 "항상 하나의 지점 작업"안티 패턴되지는 사용 :

각을 Dev-host는 최소한 두 개의 지사 (개인용 (WIP 용) 및 공유 (병합 대상) "기본")로 작업합니다. WIP가 서버에 푸시 할 필요가 전체 서버의 저장소와 다른 모든 호스트 동기화 로컬 저장소는 기본적으로

순수 DVCS 모델

"서버"를 제외하고 (그러나 "권위있는 소스"은 기본 지점입니다) 각 Dev-host에는 다른 Dev의 작업 공간에 대한 3 개의 추가 항목과 단순화를 위해 사용되는 끌어 오기 전용 모델이 있습니다 (추가 ACL 및 푸시에 대한 규칙 없음). 나는. (사람의 의사 소통) 로컬 http-server (hg serve)가 요청시 소스에서 활성화되고 대상 개발자 인 hg pull ANOTHERDEV에서 활성화됩니다. 소스 서버는 그 다음에 중지 될 수 있습니다. 이 경우에도 개인적인 브랜치는 나쁜 생각이 아니다.

주 : 모든 호스트에서 4 개의 dev-hosts, pull 명령 (pull 3 another repos)을 별칭으로 정의 할 수 있으며, 추가 협상없이 필요할 때 사용

+0

'hg serve '는 내 마음에 일이 덜한 곳입니다. 다른 dev 컴퓨터에서 끌어 올 때마다 대상을 다시 시작하지 않아야합니까? 또는 일단 http-server가 실행 중이면 최근의 변경 사항을 얻기 위해 하루 종일 계속해서 그 일을 수행 할 수 있습니까? –

+0

@Adam - "주문형"서비스를 시작하거나 중단 할 수 있습니다 (추가 작업이 필요하지 않음 - 원하는 때에 만 끌어 오기 가능). –