Gần đây tôi đã bắt đầu làm việc với MQ vì tôi thích ý tưởng làm việc trên các bản vá bị cô lập và cam kết mà không ảnh hưởng đến repo cho đến khi changeset được tinh chỉnh đủ. Trước đó, tôi đã từng làm việc với phần mở rộng của Mercurial, nhưng thấy nó hơi không ổn định. Những gì tôi vẫn đang cố gắng tìm ra trong MQ là làm thế nào để giữ các bản vá riêng biệt với nhau và áp dụng chúng không theo thứ tự cụ thể, và trên các nhánh khác nhau. Dưới đây là dòng chảy bình thường của tôi -Mercurial - Làm việc với hàng đợi tương tự như giá?
1. Bắt đầu làm việc trên một bản vá mới:
hg qnew fix-bug-1234 -m "fix bug 1234"
# do some work
hg qrefresh
2. Nhận một tính năng mới/lỗi để làm việc trên:
hg qpop fix-bug-1234
hg qnew some-feature -m "implement feature X"
# some work on feature X (perhaps in a different branch)
hg qrefresh
Tại thời điểm này, tôi muốn quay trở lại để làm việc trên bugfix, và đặt sang một bên các tính năng làm việc. Tôi nghĩ rằng nó đơn giản như:
hg qpop some-feature
hg qpush fix-bug-1234
# wrap up bug fix
hg qfinish fix-bug-1234
# get back to work on feature
Tuy nhiên, MQ dường như luôn luôn sử dụng các bản vá mới nhất được tạo ra trong series, và áp dụng nó không phụ thuộc vào lệnh qpop/qpush Tôi đang sử dụng. Tôi nên lưu ý rằng các tập tin tôi làm việc trên là hoàn toàn riêng biệt là tốt (mặc dù đôi khi họ có thể giống nhau).
Tôi có thiếu gì đó ở đây không? Tôi có nên sử dụng hg qqueue
cho việc này không? Cảm ơn.