2011-07-27 6 views
2

현재 우리는 매우 간단하지만 효과적인 릴리스 프로세스를 사용하고 있습니다. SVN에서 새 버전의 태그를 지정합니다. 이 버전은 테스트 환경으로 내보내집니다. 거기에서 우리는 수용 환경에 그리고 거기에서 생산에 대한 rsync를 만든다.릴리스 프로세스에서 내 css 및 js 파일을 축소해야합니까?

이제 우리는 css 및 js 파일을 축소하려고합니다. Acceptance 환경에서 프로덕션 환경에서 테스트 환경을 축소하고 싶었습니다. 따라서 Acceptance 환경과 Production 환경에서 모두 파일을 축소했습니다. 그러나 파일을 축소하면 시간 소인이 변경되고 rsync는 축소 된 내용이 변경되지 않았더라도 항상 모든 css 및 js 파일을 전송합니다.

내 질문은 : 이것을 해결하는 가장 좋은 방법은 무엇입니까? 새 버전을 출시하기 위해 rsync와 다른 메커니즘을 사용해야합니까? 이미 SVN에 축소 버전을 설치해야합니까? 그러나 나는 개발 된 파일을 축소하는 것을 원하지 않으므로 그들을 축소하고 결합 할 수있는 가장 좋은 순간은 무엇입니까?

우리는 PHP 5.3.6을 사용하여 스크립트에서 쉽게 사용할 수 있기 때문에 Yui-compressor를 살펴보기 시작했습니다.

+0

그리고 그 mifieds 파일을 매번 동기화 할 때의 문제점은 무엇입니까? –

+0

하나의 문제는 릴리스를 느리게 만듭니다. 하지만 더 중요한 것은 변경된 파일 목록을 보는 것이 사용자가 의도 한 것만을 릴리스한다는 것입니다. 우리는 실수를하지 않도록 여러 가지 방법을 원합니다. – Myrddin81

답변

3

원본 파일의 타임 스탬프가 이미 축소 된 파일의 타임 스탬프보다 새로운 경우에만 파일을 다시 축소해야합니다. 이렇게하면 rsync는 정상적으로 작동하고 변경된 파일 만 전송합니다.

Apache Ant 또는 Phing과 같은 빌드 소프트웨어를 사용하는 경우 매우 쉽게 달성해야합니다. 그들은 특별히 타임 스탬프 변경을 감지하는 testst를 가지고 있습니다.

+0

SVN에서 새 버전을 테스트 환경으로 가져 오면 모든 파일이 축소되지 않습니다. 즉,이 새 버전에서 변경되었는지 여부에 관계없이 모든 파일을 최소화해야하므로 모든 타임 스탬프가 업데이트됩니다. – Myrddin81

+0

rsync에 내용이 변경되지 않은 경우 파일을 업데이트하지 않는 솔루션이있을 것으로 기대하고있었습니다. 아니면 SVN에서 별도의 릴리스 버전을 만들어야합니다. 또는 축소는 Apache를 통해 즉석에서 수행해야하는 작업 일 수 있습니까? 난 그냥 모범 사례가 뭔지 모르겠다 – Myrddin81

+0

나는 rsync가 파일 변경을 감지 할 수 있다고 생각하지만, 단지 rsync 데몬을 사용할 때만, 그리고 일반 SSH를 사용할 때는 그렇지 않을 수도있다. Rsync는 트래픽을 최소화하기 위해 롤링 체크섬을 처리 할 수 ​​있습니다. –