2011-09-26 2 views
0

우리 팀 시스템에서 Mercurial을 어떻게 설치하는지 배우고 있지만, 일부 결정을 내릴만큼 경험이 없습니다.시스템 전반의 Mercurial 설치가 공유 환경에서 충분히 가능합니까?

Google 팀을 위해 Google은 저장소로 사용되는 서버 컴퓨터를 보유하고 있습니다. 모든 팀 구성원은 자신의 Linux RedHat 설치 기계를 가지고 있습니다. 그러나 우리는 로컬 터미널에서 아무 것도하지 않으며 서버에서 모든 작업을 수행합니다. 모든 회원은/home/Cassie,/home/john 등과 같은 서버에 사용자 디렉토리를 가지고 있으며, 우리는 모든 코드를 저장하고 거기에서 작업합니다. GNOME 시스템은 로컬 터미널을 켤 때 로컬 컴퓨터가 아닌 서버에 개인 파일을 표시합니다. 모든 사람이 데스크톱의 터미널 애플리케이션을 클릭 할 때마다 자신의 홈 디렉토리에 연결됩니다. 따라서 SSH 명령을 사용하여 서버에 연결할 필요가 없습니다. 그것은 학교 다중 사용자 시스템과 같습니다. 모든 사용자는 사용자 계정을 가지고 있으며 자신의 계정에 로그인하여 자신의 작업을 수행합니다. 내가 그 서버에 공유 저장소를 설치할 수 있고 모든 사람들이 모든 종류의 명령을 푸시, 당기기 등을 할 수 있기를 바랍니다.

1) 우리는 공유 환경을 사용하기 때문에 서버에만 Mercurial을 설치해야하므로 모든 사람이 "커밋", "밀어 넣기", "끌어 오기"등의 명령을 수행하기에 충분합니다.

2) 시스템 전체의 Mercurial 만 설치하면 로컬 커밋을 수행 할 수 없게됩니까? 모든 사람이 여전히 "지역 커밋"능력을 갖기를 원한다면 어떻게해야합니까?

3) 온라인으로 검색했습니다. 어떤 사람들은 공유 네트워크 서버의 경우 동일한 파일에 동시에 액세스하려는 경우 두 명의 사용자에 대해 잠금을 설정하는 것이 불가능하다고 언급했습니다. 그것은 내 상황을 암시 하는가?

요약하면 서버에서 모든 작업을 수행합니다. 모든 사용자가 여전히 로컬 커밋 기능을 가지고 있고 두 명의 사용자가 동시에 파일에 액세스하려고 시도 할 때 저장소에 여전히 잠금 보호 기능이있는 경우 모든 사용자가 공유하는 저장소에서 Mercurial 제어 기능을 사용할 계획을 원합니다. 이 시나리오가 가능하다면 서버에 Mercurial을 설치하면됩니까? 아니면 서버와 사용자 컴퓨터 모두에 Mercurial을 설치해야합니까? 시나리오가 불가능할 경우 시스템에 대한 버전 관리 계획을 제안 해 주시겠습니까?

답변

3

1) 우리는 공유 환경을 사용하기 때문에 서버에 Mercurial을 설치하면 모든 사람이 "커밋", "밀어 넣기", "끌어 오기"만하면됩니다. etc 명령?

사용자가 작업을 수행하기 위해 서버의 쉘에 로그인하는 경우 서버에 Mercurial 만 설치하면됩니다.

2) 시스템 전체에 적용되는 Mercurial 만 설치하면 로컬 커밋을 수행하지 않아도됩니까? 모든 사람이 여전히 "지역 커밋"능력을 갖기를 원한다면 어떻게해야합니까?

사용자는 코드에서 작업하기 위해 공유 "루트"저장소에서 자신의 홈 디렉토리로 체크 아웃 할 것입니다. 그들은 자신의 홈 디렉토리에 repo의 "로컬"사본을 가지고 있으며 공유 루트 저장소로 밀어 넣을 것입니다.

3) 온라인으로 검색했습니다. 어떤 사람들은 공유 네트워크 서버의 경우 동일한 파일에 동시에 액세스하려는 경우 두 명의 사용자에 대해 잠금을 설정하는 것이 불가능하다고 언급했습니다. 그것은 내 상황을 암시 하는가?

사용자가 자신의 로컬 복사본에서 작업하는 한 서로 간섭하지 않습니다. 충돌이 발생할 수있는 유일한 경우는 공유 루트 저장소에 다시 커밋 할 때입니다.이 경우 사용자는 변경 사항을 병합하고 충돌을 해결해야합니다.

Mercurial이 "중앙"및 "로컬"복사본을 처리하는 방법을 더 잘 이해하기 위해 Joel Spolsky의 우수한 Hg Init 자습서를주의 깊게 읽는 것이 좋습니다.

+0

좋아요! Hg Init은 매우 이해하기 쉽습니다. 고맙습니다. – Cassie

관련 문제