단일 서버는 "단순함"을 제공하는 것처럼 보일 수 있지만, 경험 한대로 당신에게주는 것은 완전히 혼란입니다. 불쾌하고 힘든 결과를 초래하지 않으면 운이 좋았습니다. 재현하기 힘들고 수정하기가 쉽지 않습니다. "프로덕션"서버 (고객이 작업 할 수있는 곳 - 컨텐트 만 - 사소한 위험이있는 경우 ----) 및 "준비 중"서버 (여기서는 개발 팀의 모든 것이있는 곳)로 처리하지 마십시오. 조용하고 이상적으로 사전에 정해진 시간에 개발이 진행되기 전에 테스트를 받고 잠시 동안 시험을 봐야합니다.)
두 번째 버전 제어 시스템은 일부 종류입니다. 같은 hg
및 git
등 마이크로 소프트와 다른 분야의 상용 제품을 가지고,
로 svn
인기 간단, (좋은 이유) 최신 패션 배포되는 것들 : 어떤 사람은 적은 전혀 하나를 사용하는 것보다이 중요 요점은 누군가가 파일을 업데이트 할 때마다 VCS의 자체 클라이언트에서 그렇게하는 것입니다. 일관된 변경 사항 집합이 맞으면 VCS로 푸시되고 VCS는 진단을 내리고 두 개발자가 모순 된 변경을했을 수있는 "충돌"을 지적하여 현재 푸시하는 개발자가 파일을 수정하고 그들의 푸시가 통과하기 전에 갈등을 고칠 수 있습니다. 그래야만 "현 버전"이 더 철저한 (그리고 이상적으로 자동화 된! -) 테스트 (또는 더 나은 "지속적인 빌드"시스템)를위한 준비 시스템으로 넘어갈 수 있습니다.
기본적으로 관찰 된 것처럼 이러한 충돌에 대해 두 가지 방어 계층이 있어야하며 사용자는이 두 가지를 배포하지 않은 것처럼 보입니다. 그것들은 모두 필수적입니다. 그러나 강압하에 강제로 강압 당하면 강요 당하면서 나는 생산과 준비 서버 사이의 차이점을 마지 못해 선택합니다. 개발은 여전히 혼란 스러울 것입니다. (VCS의 단순한 견고성과는 비교할 수 없을만큼 참을성이 있습니다!) 적어도 실제로는 직접적으로 시스템에 상처를주지는 않습니다 ;-).
Drupal 프로젝트의 아키텍트로서 좋은 답변입니다. 저는 Git과 함께해야한다고 덧붙이고 싶습니다. 우리는 Subversion을 사용하고 있으며 몇 번이나 엉덩이를 걷어차 왔습니다. Drupal.org 자체가 git 사용으로 옮겨 가고 있으므로 개발자에게도 좋은 단계입니다. – coderintherye
예, 좋은 대답입니다. 이것은 제가 Drupal 사이트에서 어떻게 협력 해 왔는지에 대한 것입니다. 우리는 현재 Subversion을 사용하며 잘 작동합니다. 과거에는 스테이징 서버를 사용하지 않았습니다. 대신 프로덕션 서버 (동일한 모듈, 동일한 데이터베이스)와 밀접하게 일치하는 Drupal 설치를 사용하여 자체 시스템에서 개발할 수 있습니다. 때때로 우리는 프로덕션 서버에서 SQL 덤프를 가져 와서 우리 자신의 설치와 동기화 된 내용을 유지합니다. –
여기서는 각 개발자가 자신의 서버를 소유하는 것이 유용하다는 것을 알았습니다. XAMPP 및 MAMP를 사용하는 것이 쉽습니다. 그렇게하면 개발자는 다른 사람에게 문제를 일으키지 않고 드루팔 (일시적)을 깨는 일을 할 수 있습니다. 코드가 안정적으로 보이면 SubVersion으로 검사되고 준비 서버 (프로덕션과 유사 함)에서 테스트됩니다. 추가 단계와 복잡성의 추가 레이어처럼 들리지만 실제로 잘 작동하는 것으로 나타납니다. – Graham