2013-05-02 16 views
11

tôi có một dự án git với 2 chi nhánh:Composer và nhiều chi nhánh

  • Master: Hiện nay các "chi nhánh ổn định" nhưng phải chịu sự thay đổi. Các bản phát hành được gắn thẻ từ đó.
  • Devel: Một nhánh phát triển cho phiên bản tiếp theo. Điều này được sáp nhập vào master khi chúng tôi nghĩ rằng một số tính năng từ đây khá ổn định.

Trong tổng thể, tôi có một yêu cầu trong composer.json tôi có sử dụng một phiên bản cụ thể:

"require" : { 
    "triagens/arangodb" : "1.2.1", 
    "php" : ">=5.4.0" 
}, 

Trong chi nhánh devel của tôi, tôi muốn sử dụng các phiên bản phát triển của sự phụ thuộc:

"require" : { 
    "triagens/arangodb" : "dev-devel", 
    "php" : ">=5.4.0" 
}, 

Có hiệu quả, khi các nhánh được chuyển sang, và composer install hoặc composer update được chạy, tôi muốn người chỉnh sửa cập nhật/thay đổi phụ thuộc vào các phiên bản thích hợp.

composer install --dev không hỗ trợ phiên bản phụ thuộc khác trong require-dev, tôi không thể đặt phiên bản khác trong phần require-dev.

Tôi cũng muốn không có riêng biệt composer.json cho mỗi chi nhánh như hợp nhất sẽ khá đau đớn.

Nếu bạn có nhiều chi nhánh và mỗi chi nhánh sử dụng một số phiên bản phụ thuộc, cách tốt nhất để làm điều này là gì?

Trả lời

20

Bạn có thể duy trì nhiều phiên bản của composer.json dưới tên gọi khác nhau:

  • composer.master.json
  • composer.dev.json

Sau đó, khi bạn gọi composer.phar install hay composer.phar update, bạn có thể mở đầu các tập tin nhạc sĩ mong muốn sử dụng:

  • COMPOSER=composer.master.json php composer.phar update
  • COMPOSER=composer.dev.json php composer.phar update

Xem CLI docs.

+2

Đây là ý tưởng thông minh! :) – F21

+1

Tôi thích ý tưởng của bạn, nhưng tôi muốn sử dụng: 'composer.json' dưới dạng tệp chính ' composer.dev.json' để phát triển –