드루팔의 코드베이스의 repo가 (112MB) 큰, 그래서 치열 해요, 내가 ... 디바이스 1, 디바이스 1, 살고, 여러 서버를 드루팔을 사용하는 여러 사이트가
git의 하드 링크 기능을 최대한 활용하여 사이트를 추가 할 때마다 중복되지 않도록해야합니다.
그렇다면 실제 서버에는 맨손으로 마스터 레포가 있고 모든 사이트는 각각 다른 지점을 사용하는 클론입니다. 이것은 하나의 서버에서 훌륭하고, 하드 링크가 사용되며, 빠르고 효율적입니다.
내 dev 서버에서는 일반적으로 베어 마스터 레포에서 복제됩니다. 즉, 동일한 컴퓨터의 두 사이트가 하드 링크를 사용하여 공간을 절약 할 수 없습니다.
내가 원하는 것은 내 dev 서버 각각에 맨손 저장소의 미러를 설정 한 다음 복제하는 것입니다.
dev1$ git clone --mirror live:master-bare-repo dev1-mirror-repo
dev1$ git clone -b site1 dev1-mirror-repo site1
dev1$ git clone -b site2 dev1-mirror-repo site2
지금까지 모두 좋았습니다. 그러나 나는 항상 거울을 동기화 상태로 유지하기를 원합니다. 그래서 나는 dev1의 거울에 post-receive hook을 사용하여 git push --mirror origin
을했습니다. 이제 dev1의 site1이 커밋을 푸시하면 마술처럼 master-bare-repo로 푸시됩니다.
서버를 변경하고 밀어 넣으면 어떻게됩니까? 재귀가 끝날 가능성이있는 post-receive
후크가 발생할 수 있으므로 post-receive
후크를 다른쪽으로 밀어 넣을 수 없습니다.
여기 주위에 영리한 방법이 있습니까? 모든
주기적으로 백그라운드 서버에서 서버를 가져 와서 푸시하려고하는 백그라운드 프로세스가 사후 수신 대신 작동합니까? 또한 시도해보십시오. 그러나 두 번째로 다른 서버를 밀어 넣으려는 시도는 아무 것도 없기 때문에 아무 것도받지 못하기 때문에 메서드로 루프에 갇히지 않을 것이라고 생각합니다. – Shahbaz