Я довольно часто использую ртутные очереди, и я ими очень доволен, но есть один рабочий процесс, который я считаю слишком сложным. Иногда бывает, что я работаю над патчем, а потом понимаю, что работал над чем-то, что должно быть в отдельном патче (например, когда я исправил ошибку, которую обнаружил во время работы над функцией, или добавил другую функцию для что я на самом деле хочу иметь в отдельном патче).
Таким образом, состояние рабочего каталога: применены исправления 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 обычно невелико по сравнению с ним.
Есть ли лучший способ сделать это, чем то, что я описал выше?