2015-01-27 3 views
0

현재 serverB에 미러 된 하나의 git 저장소가 있습니다. 나는 정기적으로 serverA에서 "push --mirror"를 serverB로 가져 와서이 작업을 수행하고 있습니다. 두 저장소는 동일합니다.git 서버간에 2 가지 방법으로 동기화하기

불행히도 일부 개발자는 serverB에 대한 액세스 권한 만 갖고 있으며 서버 A에 액세스 할 수 없기 때문에 프로젝트에 참여할 수 없습니다. 나는 그들에게 serverB에 코드를 푸시 해, 그러한 변경을 serverA에 반영하도록 (듯이)하고 싶다. (그 반대도 마찬가지입니다, 일부 개발자는 ServerA에 대한 액세스 권한이)

내가 필요한 것 : 개발자가 서버 B에 코드를 밀어

경우에, 나는 자동으로 ServerA가에 표시하는 코드를 원한다.

개발자가 ServerA에 코드를 푸시하면 코드가 ServerB에 자동으로 나타나기를 바랍니다.

어떻게하는지에 대한 아이디어가 있으십니까?

감사합니다. G

+0

전혀 이해가되지 않습니다. 두 사용자가 동일한 코드에 액세스 할 때 두 서버에서 분리해야하는 이유는 무엇입니까? – iberbeu

+0

알다시피, 그것은 뒤 틀렸지 만 허가 제한 때문입니다. ServerA는 회사의 주요 내부 자식 서버입니다. 계약자 용으로 ServerB가 설정되었습니다. ServerA와 B가 동일한 네트워크에 있지 않고 동일한 LDAP 서버에 연결되어 있지 않음 –

+0

"일부 개발자는 serverB에만 액세스 할 수 있으며 serverB에 액세스 할 수 없기 때문에 프로젝트에 참여할 수 없습니다." 그것은 약간 일관성이없는 것 같습니다 ... 그들은 접근 할 수 있거나 그렇지 않습니다 ... – twalberg

답변

0

serverB와 serverA에서 post-receive hook으로 원하는 작업을 수행 할 수는 있지만 필연적 인 충돌은 ... 재미있을 것입니다. 나는 전체 아이디어가 스스로 패배하기 때문에 그 이상으로 가지 않을 것입니다.

serverB에서 serverA 로의 모든 변경 사항을 자동으로 푸시하면 보안/권한을 위해 별도의 서버가 필요하지 않습니다. serverB의 모든 사용자가 serverA를 변경할 수 있으므로 serverA의 모든 변경 사항이 serverB에 표시됩니다. 점은 무엇인가? 당신은 모든 사람들에게 serverA에 대한 액세스 권한을 부여하고 많은 두통을 피할 수 있습니다.

serverB는 serverA와 통신 할 수 있으므로 serverB에서 serverA로 네트워크 터널을 설정하고 그 반대의 경우도 마찬가지입니다. 적절한 경우 SSH 터널 또는 HTTP 프록시를 사용할 수 있습니다.

관련 문제