워크 플로에 버전 제어를 어떻게 추가합니까?


11

나는 테마를 많이 개발합니다. PSD가 제공되고 HTML / CSS를 코드 작성하고 코드를 Wordpress에 넣은 다음 QC를 받으면 수정합니다. 고객은 실시간으로 게시 한 후 일반 플러그인과 같은 블로그 게시물을 편집하거나 사진을 업로드 할 수 있습니다.

때로는 테마 나 페이지 / 포스트 컨텐츠를 변경해야합니다. 즉, 클라이언트가 승인하도록 사이트를 게시하거나 개발 환경으로 사이트를 다운로드하여 설정해야합니다. 백업이없고, 버전 관리가 없으며, 변경해야한다는 것을 알고 있습니다.

Git과 Mercurial이 제안되었으며 이러한 도구를 활용하고 싶지만 워크 플로에 도구를 맞추는 방법에 대해 혼란스러워합니다.

개발 서버의 사이트에 대한 모든 변경이 필요하며 승인 된 후에는 변경 사항을 적용합니까? 블로그 게시물을 작성하는 것은 어떻습니까? 개발자에 대한 게시물을 작성하고 변경 사항을 실시간으로 푸시하는 것은 너무 많은 것 같지만 데이터베이스가 실시간 사이트에서 편집 된 경우 데이터베이스를 어떻게 동기화합니까? 나는 인터넷을 our이 뒤졌다. 약간의 안내를 부탁드립니다.


나는 이것이 범위를 벗어난 생태계 질문으로 자격이 있다고 생각합니다. 지속적인 토론은 여기를 참조하십시오 .
Chip Bennett

4
@ChipBennett 동의하지 않습니다. 테마, 플러그인 및 데이터베이스 간의 WordPress의 특정 종속성 및 일반적인 개발자 실습에 미치는 영향을 환영합니다.
fuxia

@toscho 나는 그것을 확신 할 수 있었다. 이것이 제가 메타 토론을 지적한 이유입니다. :)
Chip Bennett

답변:


9

우선, 여기에는 두 가지 워크 플로우가 있음을 알아야합니다.

워크 플로우

  • PSD 받기
  • 코드 HTML / CSS
  • 코드 워드 프레스 템플릿
  • 라이브 WordPress 사이트에 테마 배포

그들의 작업 흐름

  • 필요한 변경 사항을 고안하고 이메일을 보내십시오
  • 글 쓰기
  • 사진 업로드

문제

여기서 버전 제어를 구현하는 것은 고객의 워크 플로와 전혀 관련이 없습니다. WordPress 테마에 사용 하는 코드 를 추적하는 것이 전부 입니다. 모든 테마 파일, 사용자 정의 플러그인 등은 버전 제어 시스템 (Git, Mercurial, Subversion 또는 사용하기로 선택한 것)에 있어야합니다.

그러면 워크 플로가됩니다.

  • 코드 작성
  • 버전 관리 시스템 변경 사항 커밋
  • 프로덕션 사이트로 변경 사항 푸시
  • 고객으로부터 의견을 다시 받음
  • 코드 작성
  • 커밋 변경
  • 코드 작성
  • 커밋 변경
  • 프로덕션 사이트로 변경 사항 푸시

이것은 코드 의 버전 관리 기록을 유지하는 것에 관한 것 입니다. 코드는 고객이 변경해서는 안되는 것이므로 프로덕션 사이트에있는 동안 프로덕션 사이트에서 코드를 변경 해서는 안됩니다 .

그러나 컨텐츠 (게시물, 사진 등)의 변경은 버전 관리 시스템의 범위를 벗어납니다. 즉, 개발을 변경하지 않고 데이터베이스를 프로덕션으로 푸시합니다. 그것은 나쁜 개발 관행입니다. dev 및 prod 데이터베이스가 동기화되어 있어야하는 경우 프로덕션 상자에서 정기적으로 백업을 가져와 해당 백업에서 로컬 버전을 복원해야합니다.

코드 변경 은 개발에서 프로덕션으로 진행됩니다.
데이터베이스 변경 은 프로덕션에서 개발로 진행됩니다.


콘텐츠 데이터가 데이터베이스에 저장되는 방식을 관리하는 특수 스크립트가 없으면 데이터베이스를 쉽게 동기화 할 수 없습니다. 그렇기 때문에 워크 플로의 콘텐츠에서 코드를 분리하는 이유는 스테이징 서버를 사용하거나 db 동기화 스크립트 중 하나를 사용하거나 직접 작성하는 것입니다.
Wyck

@EAMann 훌륭한 답변 감사합니다! 내가 설명한 워크 플로에 추가 할 수있는 유일한 것은 코드 작성, 변경 사항 커밋, 개발 사이트로 푸시, 클라이언트로부터 의견 다시 받기 등입니다. 정기적으로 우리는 고객을위한 콘텐츠. 때때로 콘텐츠 내에서 특수 요청 (특수 스타일 등)을 수용하기 위해 콘텐츠에 HTML을 넣어야합니다. 라이브로 가기 전에 클라이언트의 승인이 필요한 경우도 있으므로 데이터베이스를 동기화해야합니다. 이런 종류의 설정에 대한 모범 사례가 있습니까?
cfree

@Wyck 테마와 함께 컨텐츠를 삭제하는 대신 두 프로세스를 분리하는 것이 좋습니다. 주제별 개발 영역과 콘텐츠가 서로 독립적으로 떨어지는 준비 영역이라는 아이디어가 마음에 듭니다. 내가 볼 수있는 유일한 문제는 고객이 테마를 시작하기 전에 테마와 콘텐츠 (전체 사이트, 정적 페이지)를 모두 보는 것을 좋아한다는 것입니다.
cfree

일반적으로 데이터베이스 변경 사항을 동기화하는 것은 중요하지 않습니다. 내가 말하고자하는 것은 프로덕션 데이터베이스 덤프를 가져 와서 로컬 개발 데이터베이스를 교체 한다는 것입니다. 사실, 스크립트를 사용하여 자동화 할 수는 있지만 자주 수행하지는 않을 것입니다.
EAMann

3
이 문제가, 당신은 여기에 대해 읽을 수는 워드 프레스의 측면에서 가시 정말하지만, 많은 CMS의로하지 특히 워드 프레스 문제, 아직 없다 wordpress.stackexchange.com/questions/119/... 일부는, 깊이 더 스크립트는 존재하지만 대부분 특정 환경에 고유하기 때문에 사내에 있습니다.
Wyck

1

데이터베이스를 동기화하는 소프트웨어를 사용할 수 있습니다. 그러나 http://chronicdb.com 과 같은 방식으로 데이터 자체의 버전을 지정할 수도 있습니다 .


이것은 흥미로워 보인다. 몇 가지 문제를 해결할 수 있습니다. 감사합니다.
cfree

1

방금 다른 질문에 이것에 대한 철저한 답변 을 썼습니다 . 개인적으로 나는 자식을 사용하고 환상적입니다. 시작하는 관점에서 http://gitref.org/http://help.github.com/mac-set-up-git/를 확인하는 것이 좋습니다 . 이 책의 유형을 경우, 본인은했습니다 이 하나 그것은 확실히 $ (22) 전자 책 가격이 가치가있다. 스스로 결정하십시오. 그 결정을 후회하지 않을 것입니다.


고마워, 나는 그것을 다시 참조해야합니다. 마스터 / 슬레이브 데이터베이스 설정이 흥미롭게 들립니다.
안내해
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.