Я использую ртутные очереди довольно часто, и я действительно доволен ими, но есть один рабочий процесс, который я считаю чрезмерно сложным.Иногда случается так, что я работаю над патчем, и затем я понимаю, что работаю над чем-то, что должно быть в отдельном патче (например, когда я исправил ошибку, обнаруженную при работе над функцией, или добавил другую функцию длячто я действительно хочу иметь в отдельном патче).
Таким образом, состояние рабочего каталога: применены исправления A, B, C, плюс изменения, которые должны быть внесены в исправление C, и изменения, которые должны быть в новом исправлении D.
Мой текущий рабочий процесс для этого выглядит следующим образом:
hg qnew D.patch files-for-patch-D..
hg qnew temp.patch # changes for patch C
hg qpop
hg qpop
# Now I'm on patch C
hg qfold temp.patch # Integrate changes into patch C
# Here I could have patch errors..
hg qpush
Я знаю, что я мог бы сделать это так
hg qrefresh files-for-patch-C..
hg qnew -m "..." new-feature.patch
Недостатком этого подхода является то, что количество файлов для патчаC обычно большой, и неудобно помещать их все в командную строку.Количество файлов для патча D обычно невелико по сравнению с ним.
Есть ли лучший способ сделать это, чем я описал выше?