프로젝트에서 제어 제어 모듈을 소싱해야합니까?


7

개발하는 동안 모든 것을 소스 sites/코드 저장소 (예 : SVN)에 소스 제어해야한다고 들었습니다 .

내가 사용하는 contrib 모듈 ( ctools, views등)을 절대로 만지지 않지만 내 테마 만 만들 것이라고 가정하면 여전히 그렇게해야합니까?

아니면 모든 것을 소스 제어해야 sites/all/themes/합니까?

감사

답변:


10

우리 팀에서는 현재 프로젝트와 관련된 것을 소싱하기 만했습니다. 예를 들어 뷰를 사용하는 경우 적절한 항목을 drush make 파일에 추가 하고 모듈 자체가 아닌 버전 버전으로 바꿉니다 .

이로 인해 현재 사이트, 현재 테마 및 기능 내보내기에 특정한 사용자 정의 모듈로 구성된 매우 작은 저장소가 생깁니다.

drush와 drush make를 절대 사용할 수 없다면, 왜 다른 버전의 버전 제어 코드를 버전 관리해야하는지 모르겠습니다. 그리고 모듈 중 하나를 해킹하려는 경우 자신의 리포지토리에서 코드의 버전을 지정하지 않고 하위 모듈 로 추가해야합니다 . ( SVN 에서는 벤더 지점 이라고합니다 ).

편집 : 자세한 내용과 고급 설정을 보려면 다음 저장소를 살펴보십시오. git@github.com : letharion / Drupal-build-scripts.git 스크립트는 건물을 포함한 팀 워크 플로우를 지원하기 위해 bash로 작성됩니다. 기본 설치 프로파일 ( NodeStream ), 그 위에 사이트 별 프로파일, 각 프로파일의 make 파일, 패치 적용 또는 개별 빌드 단계에서 다른 변경 등을위한 후크 등이 있습니다. -가까운 장래에 돌진 확장으로 작성하십시오.


자세한 설명 주셔서 감사합니다. 예, 나는 돌진을 사용하고 가능한 한 많이 자동화 할 계획입니다. 그리고 코어 또는 contrib 모듈에서 코드를 변경할 계획이 없습니다.
cherouvim

+1 make 파일을 버전 관리하는 것은 좋은 생각입니다. 앞으로 그렇게 할 것이라고 생각합니다.)
Clive

1
@Letharion 여러 개발자와 동시에 같은 사이트를 개발할 때 이것이 어떻게 작동하는지 잘 모르겠습니까? AFAIK drush make는 모든 종속성을 항상 다운로드하고 해당 모듈이 이미 D / L되었거나 업데이트 된 / 새 모듈 만 다운로드 할 수있는 문서화되지 않은 옵션이있는 경우에도 사이트 / 기본값을 덮어 쓰려고합니까? 즉, Drush make를 사용하여 새로 설치하면 이점이 있지만 분산 된 팀에서 모듈 종속성을 동기화 된 상태로 유지하려면 어떻게 사용합니까?
Creynders

나는 지금 1 년 넘게이 접근법을 사용해 왔지만, 매일 플랫폼을 재 구축하지 않을 수도있는 다른 개발자들과 작업 할 때 레포지토리에있는 모든 것을 갖는 것이 실제로 더 나은지에 대해 의문을 품고 있습니다. 또한이 방법은 Acquia가 클라우드 호스팅을위한 저장소를 구성하는 방식과 실제로 호환되지 않습니다.
David Meister

6

@Letharion의 답변에 대응하기 위해 SVN에 모든 것을 넣는 것은 일부 조직에 의미가 있으며 실제로 롤아웃 방법에 달려 있습니다. contrib 모듈과 테마를 SVN에 넣는 것은 "시간을 거슬러"돌아가서 이전 버전의 사이트를 살펴보아야 할 경우에 적합합니다.

이것의 한 예는 contrib 모듈에서 버그가 의심되거나 다른 동작을 볼 때 유용합니다. 과거의 정식 버전을 복원 할 수 있으면 도움이 될 수 있습니다.

또한 클라이언트가 사이트에서 수행 한 작업을 파악해야 할 때 SVN에서 전체 사이트 스냅 숏을 만드는 것이 편리하다는 것을 알았습니다. 버전의 전체 스냅 샷을 찍어 SVN에 브랜치로 붙여 비교할 수 있습니다.


"시간을 거슬러 올라가려면"해당 전체 데이터베이스 백업도 필요합니다. 일부 설정 및 구성이 DB에 있기 때문입니다. 맞습니까?
cherouvim

예. Backup and Migrate 모듈 및 / 또는 drush archive-backup은 여기 친구입니다.
mpdonadio

1
이 방법을 사용하면 버전 제어 및 백업에서 전체 설치를 복제 할 수 있으므로 라이브 사이트를 개발하거나 디버깅하는 데 매우 유용합니다.
keithm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.