2012-11-16 4 views
4

내 프로젝트는 original Symfony SE repository에서 복제 한 Symfony Standard Edition을 기반으로합니다. Symfony는 물론 자신의 composer.jsoncomposer.lock 파일을 배포합니다.Symfony2 Standard Edition을 업그레이드 할 때 Composer에서 병합 충돌 해결

내 프로젝트 개발을 위해 master 분기를 사용하고 프로젝트를 시작한 후 내 프로젝트의 종속성을 composer.json에 추가하고 composer.lock으로 잠갔습니다.

이제 Symfony SE 2.1.3을 사용하기 위해 프로젝트를 업데이트해야합니다.

나는 자식을 원격으로 추가 REPO 심포니 표준 버전이 있습니다

git remote add symfonyse git://github.com/symfony/symfony-standard.git 

그리고 최신 2.1 개발 얻을 2.1 분기 symfonyse 저장소에서 최신 변경 사항에 병합 할 수 있습니다 :

git pull symfonyse 2.1 

당연히 당기기 후에 내 자신의 의존성으로 composer.json을 수정했기 때문에 병합 충돌이 발생했고 composer.lock은 이전의 종속성에 잠겨있었습니다.

현재 충돌이있는 최신 composer.lock은 최신 Symfony2 SE 잠금 종속성을 내 프로젝트의 잠긴 종속성 (내 deps 및 Symfony 2.1.0의 deps 포함)에 병합하려고합니다. 수동으로 병합하는 것은 매우 지루할 것입니다!

composer.lock에서 이러한 충돌을 해결하는 가장 좋은 방법은 무엇입니까?

병합을 시작하기 전에 composer.lockcomposer.lock으로 되 돌리는 을 병합으로 무시해야합니까? 내가. Symfony2 SE가이 난 단지에 합병 새로운 composer.json 변경에 업데이트되었습니다 필요 나는 각 의존성에 대한 composer update를 실행할 수

을 파악 아니면 모든 변경 사항이 composer.lock에 병합 될 받아 들여야한다, 커밋, 단순히 모든 업데이트 composer update을 실행하여 프로젝트 종속성을 확인 하시겠습니까? 이것은 본질적으로 Symfony 2.1.3과 내 자신의 의존성에 대한 잠금 기능을 가진 새로운 잠금 파일을 생성합니다. 나는 최신 파일을 얻는다면 잠금 파일에 대한 업스트림 업데이트가 필요한지 확실하지 않다. composer.json 변경 사항.

답변

2

다소 안정적인 요구 사항 (dev-master ..로 가득하지는 않음)이있는 경우 가장 좋고 이상적인 경우는 composer.lock (또는 git checkout)을 rm하고 업데이트를 실행하여 당신은 모든 것에 대한 최신 의존성을 갖게됩니다.

그럴 수 없다면 업스트림에서 변경 사항을 되돌릴 수 있으며 composer update <specific packages>을 사용하면 속도를 향상시킬 수 있습니다. 하지만 오류가 발생하기 쉽고 지루한 일이기 때문에 가장 좋은 방법은 프로젝트에 의존성이 충분히 있는지 확인하여 공포없이 작곡가 업데이트를 실행할 수 있도록하는 것입니다.