Если речь про git, то amend лучше делать на каждый небольшой кусочек (например, готовую функцию), даже если вся задача не готова. Во внутренней истории reflog видно каждое действие по отдельности, при необходимости можно к нему вернуться. А в истории получается 1 commit.
В merqurial объединять несколько коммитов в один не получится. Там обычно коммитят пореже, чтобы красота истории не сильно страдала.